diff options
| author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-06-12 07:52:49 -0400 |
|---|---|---|
| committer | FernandoS27 <fsahmkow27@gmail.com> | 2019-07-05 15:49:26 -0400 |
| commit | 7d1b974bcaf72c32910dcf4ff2d435f91cf40609 (patch) | |
| tree | 64c69a14a9135b0027dea0d7e832e52710d7d8a8 /src/core/hle/service/nvdrv/devices | |
| parent | 61697864c3c8abc35ce957f5f0a0dacd7a8e96f9 (diff) | |
GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware
Diffstat (limited to 'src/core/hle/service/nvdrv/devices')
| -rw-r--r-- | src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp index 02b078c2f..d41274616 100644 --- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp +++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp @@ -109,7 +109,7 @@ u32 nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector<u8>& } params.value |= event_id; events_interface.events[event_id].writable->Clear(); - gpu.RegisterEvent(event_id, params.syncpt_id, params.threshold); + gpu.RegisterSyncptInterrupt(params.syncpt_id, params.threshold); std::memcpy(output.data(), ¶ms, sizeof(params)); gpu.Guard(false); return NvResult::Timeout; @@ -159,9 +159,6 @@ u32 nvhost_ctrl::IocCtrlEventSignal(const std::vector<u8>& input, std::vector<u8 return NvResult::BadParameter; } if (events_interface.status[event_id] == EventState::Waiting) { - auto& gpu = system.GPU(); - gpu.CancelEvent(event_id, events_interface.assigned_syncpt[event_id], - events_interface.assigned_value[event_id]); events_interface.LiberateEvent(event_id); } return NvResult::Success; |
