GPU: Correct Interrupts to interrupt on syncpt/value instead of event, mirroring hardware

This commit is contained in:
Fernando Sahmkow
2019-06-12 07:52:49 -04:00
committed by FernandoS27
parent 61697864c3
commit 7d1b974bca
12 changed files with 45 additions and 48 deletions

View File

@ -73,6 +73,8 @@ struct EventsInterface {
void LiberateEvent(const u32 event_id) {
status[event_id] = registered[event_id] ? EventState::Registered : EventState::Free;
events_mask &= ~(1 << event_id);
assigned_syncpt[event_id] = 0xFFFFFFFF;
assigned_value[event_id] = 0;
}
};
@ -97,7 +99,7 @@ public:
/// Closes a device file descriptor and returns operation success.
ResultCode Close(u32 fd);
void SignalEvent(const u32 event_id);
void SignalSyncpt(const u32 syncpoint_id, const u32 value);
Kernel::SharedPtr<Kernel::ReadableEvent> GetEvent(const u32 event_id);