From e1c74cea10591d1e9fba9353d20f3929ec41d4f0 Mon Sep 17 00:00:00 2001
From: Liam <liamwhite@users.noreply.github.com>
Date: Tue, 2 May 2023 18:05:30 -0400
Subject: [PATCH] video_core: fix build on Apple Clang

---
 src/video_core/buffer_cache/buffer_cache.h        | 2 +-
 src/video_core/buffer_cache/memory_tracker_base.h | 6 ++++--
 src/video_core/texture_cache/texture_cache.h      | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h
index 7975564b52..e534e1e9ca 100644
--- a/src/video_core/buffer_cache/buffer_cache.h
+++ b/src/video_core/buffer_cache/buffer_cache.h
@@ -1426,7 +1426,7 @@ bool BufferCache<P>::SynchronizeBufferNoModified(Buffer& buffer, VAddr cpu_addr,
                 .size = sub_size,
             });
             total_size_bytes += sub_size;
-            largest_copy = std::max(largest_copy, sub_size);
+            largest_copy = std::max<u64>(largest_copy, sub_size);
         }
         const std::span<BufferCopy> copies_span(copies.data(), copies.size());
         UploadMemory(buffer, total_size_bytes, largest_copy, copies_span);
diff --git a/src/video_core/buffer_cache/memory_tracker_base.h b/src/video_core/buffer_cache/memory_tracker_base.h
index 4bc59017f1..dc4ebfcaa7 100644
--- a/src/video_core/buffer_cache/memory_tracker_base.h
+++ b/src/video_core/buffer_cache/memory_tracker_base.h
@@ -170,7 +170,8 @@ private:
         std::size_t page_index{cpu_address >> HIGHER_PAGE_BITS};
         u64 page_offset{cpu_address & HIGHER_PAGE_MASK};
         while (remaining_size > 0) {
-            const std::size_t copy_amount{std::min(HIGHER_PAGE_SIZE - page_offset, remaining_size)};
+            const std::size_t copy_amount{
+                std::min<std::size_t>(HIGHER_PAGE_SIZE - page_offset, remaining_size)};
             auto* manager{top_tier[page_index]};
             if (manager) {
                 if constexpr (BOOL_BREAK) {
@@ -206,7 +207,8 @@ private:
         u64 begin = std::numeric_limits<u64>::max();
         u64 end = 0;
         while (remaining_size > 0) {
-            const std::size_t copy_amount{std::min(HIGHER_PAGE_SIZE - page_offset, remaining_size)};
+            const std::size_t copy_amount{
+                std::min<std::size_t>(HIGHER_PAGE_SIZE - page_offset, remaining_size)};
             auto* manager{top_tier[page_index]};
             const auto execute = [&] {
                 auto [new_begin, new_end] = func(manager, page_offset, copy_amount);
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index e601f84468..f335009d0f 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -888,7 +888,7 @@ void TextureCache<P>::DownloadImageIntoBuffer(typename TextureCache<P>::Image* i
             buffer,
             download_map.buffer,
         };
-        std::array buffer_offsets{
+        std::array<u64, 2> buffer_offsets{
             buffer_offset,
             download_map.offset,
         };