diff options
| author | 2020-03-31 15:12:41 -0400 | |
|---|---|---|
| committer | 2020-06-27 11:36:04 -0400 | |
| commit | c8bf47dcfbd43f3e7835d2e45b4704e056d8e9ee (patch) | |
| tree | dfd5bbcb4a0d025b7d77537dec23e70c57052717 /src/core/hle/kernel/kernel.cpp | |
| parent | Bootmanager/CPU_Manager: Correct shader caches and sync GPU on OpenGL. (diff) | |
| download | yuzu-c8bf47dcfbd43f3e7835d2e45b4704e056d8e9ee.tar.gz yuzu-c8bf47dcfbd43f3e7835d2e45b4704e056d8e9ee.tar.xz yuzu-c8bf47dcfbd43f3e7835d2e45b4704e056d8e9ee.zip | |
Kernel/svcBreak: Implement CacheInvalidation for Singlecore and correct svcBreak.
Diffstat (limited to 'src/core/hle/kernel/kernel.cpp')
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 739205eca..1f230fc4a 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp | |||
| @@ -545,7 +545,17 @@ const Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() const { | |||
| 545 | } | 545 | } |
| 546 | 546 | ||
| 547 | void KernelCore::InvalidateAllInstructionCaches() { | 547 | void KernelCore::InvalidateAllInstructionCaches() { |
| 548 | //TODO: Reimplement, this | 548 | if (!IsMulticore()) { |
| 549 | auto& threads = GlobalScheduler().GetThreadList(); | ||
| 550 | for (auto& thread : threads) { | ||
| 551 | if (!thread->IsHLEThread()) { | ||
| 552 | auto& arm_interface = thread->ArmInterface(); | ||
| 553 | arm_interface.ClearInstructionCache(); | ||
| 554 | } | ||
| 555 | } | ||
| 556 | } else { | ||
| 557 | UNIMPLEMENTED_MSG("Cache Invalidation unimplemented for multicore"); | ||
| 558 | } | ||
| 549 | } | 559 | } |
| 550 | 560 | ||
| 551 | void KernelCore::PrepareReschedule(std::size_t id) { | 561 | void KernelCore::PrepareReschedule(std::size_t id) { |