mirror of
https://github.com/yuzu-emu/yuzu-android
synced 2025-10-19 00:10:32 -07:00
GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware
This commit is contained in:
committed by
FernandoS27
parent
61697864c3
commit
7d1b974bca
@@ -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;
|
||||
|
Reference in New Issue
Block a user