From ea207c85aae2a7d93c1d91bb7b9271abfe645722 Mon Sep 17 00:00:00 2001 From: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com> Date: Mon, 23 Jun 2025 20:35:59 +0300 Subject: [PATCH] Fix windows and macos build --- src/video_core/amdgpu/liverpool.cpp | 7 ++++--- src/video_core/buffer_cache/buffer_cache.cpp | 21 +++++++++++-------- .../renderer_vulkan/vk_rasterizer.cpp | 2 +- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/video_core/amdgpu/liverpool.cpp b/src/video_core/amdgpu/liverpool.cpp index 593e9d1ba..fa6102c96 100644 --- a/src/video_core/amdgpu/liverpool.cpp +++ b/src/video_core/amdgpu/liverpool.cpp @@ -831,7 +831,8 @@ Liverpool::Task Liverpool::ProcessCompute(std::span acb, u32 vqid) { if (queue.tmp_dwords > 0) [[unlikely]] { header = reinterpret_cast(queue.tmp_packet.data()); next_dw_off = header->type3.NumWords() + 1 - queue.tmp_dwords; - std::memcpy(queue.tmp_packet.data() + queue.tmp_dwords, acb.data(), next_dw_off * sizeof(u32)); + std::memcpy(queue.tmp_packet.data() + queue.tmp_dwords, acb.data(), + next_dw_off * sizeof(u32)); queue.tmp_dwords = 0; } @@ -872,8 +873,8 @@ Liverpool::Task Liverpool::ProcessCompute(std::span acb, u32 vqid) { } case PM4ItOpcode::IndirectBuffer: { const auto* indirect_buffer = reinterpret_cast(header); - auto task = ProcessCompute({indirect_buffer->Address(), - indirect_buffer->ib_size}, vqid); + auto task = ProcessCompute( + {indirect_buffer->Address(), indirect_buffer->ib_size}, vqid); RESUME_ASC(task, vqid); while (!task.handle.done()) { diff --git a/src/video_core/buffer_cache/buffer_cache.cpp b/src/video_core/buffer_cache/buffer_cache.cpp index e8e19a509..484fae386 100644 --- a/src/video_core/buffer_cache/buffer_cache.cpp +++ b/src/video_core/buffer_cache/buffer_cache.cpp @@ -3,6 +3,7 @@ #include #include +#include #include "common/alignment.h" #include "common/debug.h" #include "common/div_ceil.h" @@ -145,14 +146,15 @@ void BufferCache::ReadMemory(VAddr device_addr, u64 size) { } std::binary_semaphore sem{0}; liverpool->SendCommand([this, &sem, device_addr, size] { - ForEachBufferInRange(device_addr, size, [this, device_addr, size](BufferId buffer_id, Buffer& buffer) { - const VAddr buffer_start = buffer.CpuAddr(); - const VAddr buffer_end = buffer_start + buffer.SizeBytes(); - const VAddr download_start = std::max(buffer_start, device_addr); - const VAddr download_end = std::min(buffer_end, device_addr + size); - const u64 download_size = download_end - download_start; - DownloadBufferMemory(buffer, download_start, download_size); - }); + ForEachBufferInRange( + device_addr, size, [this, device_addr, size](BufferId buffer_id, Buffer& buffer) { + const VAddr buffer_start = buffer.CpuAddr(); + const VAddr buffer_end = buffer_start + buffer.SizeBytes(); + const VAddr download_start = std::max(buffer_start, device_addr); + const VAddr download_end = std::min(buffer_end, device_addr + size); + const u64 download_size = download_end - download_start; + DownloadBufferMemory(buffer, download_start, download_size); + }); sem.release(); }); sem.acquire(); @@ -266,7 +268,8 @@ bool BufferCache::CommitPendingDownloads(bool wait_done) { const u64 dst_offset = copy.dstOffset - offset; if (!memory->TryWriteBacking(std::bit_cast(copy_device_addr), download + dst_offset, copy.size)) { - std::memcpy(std::bit_cast(copy_device_addr), download + dst_offset, copy.size); + std::memcpy(std::bit_cast(copy_device_addr), download + dst_offset, + copy.size); } } } diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index e16d12810..6e882cf8d 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -3,8 +3,8 @@ #include "common/config.h" #include "common/debug.h" -#include "core/memory.h" #include "common/scope_exit.h" +#include "core/memory.h" #include "shader_recompiler/runtime_info.h" #include "video_core/amdgpu/liverpool.h" #include "video_core/renderer_vulkan/vk_instance.h"