aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nvdrv/devices
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-06-12 07:52:49 -0400
committerFernandoS27 <fsahmkow27@gmail.com>2019-07-05 15:49:26 -0400
commit7d1b974bcaf72c32910dcf4ff2d435f91cf40609 (patch)
tree64c69a14a9135b0027dea0d7e832e52710d7d8a8 /src/core/hle/service/nvdrv/devices
parent61697864c3c8abc35ce957f5f0a0dacd7a8e96f9 (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.cpp5
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(), &params, 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;