diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/gpu.cpp | 9 | ||||
| -rw-r--r-- | src/video_core/gpu.h | 6 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 267a03f2d..30b29e14d 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp | |||
| @@ -286,9 +286,10 @@ void GPU::ProcessSemaphoreTriggerMethod() { | |||
| 286 | // TODO(Kmather73): Generate a real GPU timestamp and write it here instead of | 286 | // TODO(Kmather73): Generate a real GPU timestamp and write it here instead of |
| 287 | // CoreTiming | 287 | // CoreTiming |
| 288 | block.timestamp = Core::System::GetInstance().CoreTiming().GetTicks(); | 288 | block.timestamp = Core::System::GetInstance().CoreTiming().GetTicks(); |
| 289 | memory_manager->WriteBlock(regs.smaphore_address.SmaphoreAddress(), &block, sizeof(block)); | 289 | memory_manager->WriteBlock(regs.semaphore_address.SemaphoreAddress(), &block, |
| 290 | sizeof(block)); | ||
| 290 | } else { | 291 | } else { |
| 291 | const u32 word{memory_manager->Read<u32>(regs.smaphore_address.SmaphoreAddress())}; | 292 | const u32 word{memory_manager->Read<u32>(regs.semaphore_address.SemaphoreAddress())}; |
| 292 | if ((op == GpuSemaphoreOperation::AcquireEqual && word == regs.semaphore_sequence) || | 293 | if ((op == GpuSemaphoreOperation::AcquireEqual && word == regs.semaphore_sequence) || |
| 293 | (op == GpuSemaphoreOperation::AcquireGequal && | 294 | (op == GpuSemaphoreOperation::AcquireGequal && |
| 294 | static_cast<s32>(word - regs.semaphore_sequence) > 0) || | 295 | static_cast<s32>(word - regs.semaphore_sequence) > 0) || |
| @@ -315,11 +316,11 @@ void GPU::ProcessSemaphoreTriggerMethod() { | |||
| 315 | } | 316 | } |
| 316 | 317 | ||
| 317 | void GPU::ProcessSemaphoreRelease() { | 318 | void GPU::ProcessSemaphoreRelease() { |
| 318 | memory_manager->Write<u32>(regs.smaphore_address.SmaphoreAddress(), regs.semaphore_release); | 319 | memory_manager->Write<u32>(regs.semaphore_address.SemaphoreAddress(), regs.semaphore_release); |
| 319 | } | 320 | } |
| 320 | 321 | ||
| 321 | void GPU::ProcessSemaphoreAcquire() { | 322 | void GPU::ProcessSemaphoreAcquire() { |
| 322 | const u32 word = memory_manager->Read<u32>(regs.smaphore_address.SmaphoreAddress()); | 323 | const u32 word = memory_manager->Read<u32>(regs.semaphore_address.SemaphoreAddress()); |
| 323 | const auto value = regs.semaphore_acquire; | 324 | const auto value = regs.semaphore_acquire; |
| 324 | if (word != value) { | 325 | if (word != value) { |
| 325 | regs.acquire_active = true; | 326 | regs.acquire_active = true; |
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h index c1830ac8d..de30ea354 100644 --- a/src/video_core/gpu.h +++ b/src/video_core/gpu.h | |||
| @@ -177,11 +177,11 @@ public: | |||
| 177 | u32 address_high; | 177 | u32 address_high; |
| 178 | u32 address_low; | 178 | u32 address_low; |
| 179 | 179 | ||
| 180 | GPUVAddr SmaphoreAddress() const { | 180 | GPUVAddr SemaphoreAddress() const { |
| 181 | return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | | 181 | return static_cast<GPUVAddr>((static_cast<GPUVAddr>(address_high) << 32) | |
| 182 | address_low); | 182 | address_low); |
| 183 | } | 183 | } |
| 184 | } smaphore_address; | 184 | } semaphore_address; |
| 185 | 185 | ||
| 186 | u32 semaphore_sequence; | 186 | u32 semaphore_sequence; |
| 187 | u32 semaphore_trigger; | 187 | u32 semaphore_trigger; |
| @@ -263,7 +263,7 @@ private: | |||
| 263 | static_assert(offsetof(GPU::Regs, field_name) == position * 4, \ | 263 | static_assert(offsetof(GPU::Regs, field_name) == position * 4, \ |
| 264 | "Field " #field_name " has invalid position") | 264 | "Field " #field_name " has invalid position") |
| 265 | 265 | ||
| 266 | ASSERT_REG_POSITION(smaphore_address, 0x4); | 266 | ASSERT_REG_POSITION(semaphore_address, 0x4); |
| 267 | ASSERT_REG_POSITION(semaphore_sequence, 0x6); | 267 | ASSERT_REG_POSITION(semaphore_sequence, 0x6); |
| 268 | ASSERT_REG_POSITION(semaphore_trigger, 0x7); | 268 | ASSERT_REG_POSITION(semaphore_trigger, 0x7); |
| 269 | ASSERT_REG_POSITION(reference_count, 0x14); | 269 | ASSERT_REG_POSITION(reference_count, 0x14); |