Updated to use Memory::WriteBlock instead of Memory::Write*

This commit is contained in:
kmather73
2018-12-26 15:10:37 -08:00
parent a6b8baaff3
commit ca9203b847

View File

@@ -285,9 +285,21 @@ void GPU::ProcessSemaphoreTriggerMethod() {
// CoreTiming
const auto acquire_timestamp = CoreTiming::GetTicks();
if (op == GpuSemaphoreOperation::WriteLong) {
Memory::Write32(regs.smaphore_address.SmaphoreAddress(), sequence);
Memory::Write32(regs.smaphore_address.SmaphoreAddress() + 0x4, 0);
Memory::Write64(regs.smaphore_address.SmaphoreAddress() + 0x8, acquire_timestamp);
auto address = memory_manager->GpuToCpuAddress(regs.smaphore_address.SmaphoreAddress());
struct Block {
u32 sequence;
u32 zeros;
u64 timestamp;
Block(u32 sequence)
{
this->sequence = sequence;
zeros = 0;
timestamp = CoreTiming::GetTicks();
}
} block(regs.semaphore_sequence);
Memory::WriteBlock(*address, &block, sizeof(block));
} else {
const u32 word = Memory::Read32(regs.smaphore_address.SmaphoreAddress());
if ((op == GpuSemaphoreOperation::AcquireEqual && word == regs.semaphore_sequence) ||