diff options
| author | 2021-10-16 00:20:19 +0200 | |
|---|---|---|
| committer | 2021-10-16 00:23:27 +0200 | |
| commit | 53cf91d151d1e3d289917b63cf17ca254674f1ce (patch) | |
| tree | b98a87d68243e1f9358c10a8870dd296c0aa5eb1 /src/core/hle | |
| parent | Suspend temporally (diff) | |
| download | yuzu-53cf91d151d1e3d289917b63cf17ca254674f1ce.tar.gz yuzu-53cf91d151d1e3d289917b63cf17ca254674f1ce.tar.xz yuzu-53cf91d151d1e3d289917b63cf17ca254674f1ce.zip | |
NvHost/Core: Address Feedback.
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp index b59eae55c..f9b82b504 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | |||
| @@ -150,9 +150,11 @@ NvResult nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector | |||
| 150 | params.value |= event_id; | 150 | params.value |= event_id; |
| 151 | event.event->GetWritableEvent().Clear(); | 151 | event.event->GetWritableEvent().Clear(); |
| 152 | if (events_interface.failed[event_id]) { | 152 | if (events_interface.failed[event_id]) { |
| 153 | system.stallForGPU(true); | 153 | { |
| 154 | gpu.WaitFence(params.syncpt_id, target_value); | 154 | auto lk = system.StallCPU(); |
| 155 | system.stallForGPU(false); | 155 | gpu.WaitFence(params.syncpt_id, target_value); |
| 156 | system.UnstallCPU(); | ||
| 157 | } | ||
| 156 | std::memcpy(output.data(), ¶ms, sizeof(params)); | 158 | std::memcpy(output.data(), ¶ms, sizeof(params)); |
| 157 | events_interface.failed[event_id] = false; | 159 | events_interface.failed[event_id] = false; |
| 158 | return NvResult::Success; | 160 | return NvResult::Success; |