From 099de8dea62cbf17c8e06a6c24e72b38475d1566 Mon Sep 17 00:00:00 2001 From: nmzik Date: Sun, 18 Oct 2026 16:17:51 +0200 Subject: [PATCH] graphics: publish each PM4 WRITE_DATA word exactly once --- src/graphics/guest_gpu/graphicsRun.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/graphics/guest_gpu/graphicsRun.cpp b/src/graphics/guest_gpu/graphicsRun.cpp index 7863836c4..41aeee369 100644 --- a/src/graphics/guest_gpu/graphicsRun.cpp +++ b/src/graphics/guest_gpu/graphicsRun.cpp @@ -343,12 +343,11 @@ void CommandProcessor::WriteData(uint32_t* dst, const uint32_t* src, uint32_t dw return; } - if (write_one_address) { - for (uint32_t i = 0; i < dw_num; i++) { - dst[0] = src[i]; - } - } else { - memcpy(dst, src, static_cast(dw_num) * sizeof(uint32_t)); + // Completion labels can be reused immediately; memcpy may write a destination twice. + auto* output = static_cast(dst); + for (uint32_t i = 0; i < dw_num; i++) { + *output = src[i]; + output += !write_one_address; } }