On Tue Sep 16 16:44:24 2025 +0000, Stian Low wrote:
Thanks for reviewing, guidance, and bearing with my confusion while deep dive these parts of WINE for the first time. I have another pending patch that calls NetSetEvent from NtSetEventBoostPriority but the condition under which NetSetEvent should be called is still unclear to me. Looking deeper at Xenia Canary SetBoostPriority() calls: https://github.com/xenia-canary/xenia-canary/blob/canary_experimental/src/xe...: `// SetEvent, but if there is a waiter we immediately transfer execution to it` This comment seems inline with @mzent assumptions that threads awaiting the event are made immediately runnable. APU audio decoding and GPU write pointer updates seem to be the two major use cases by Xenia Canary: https://github.com/xenia-canary/xenia-canary/blob/canary_experimental/src/xe...
if (r >= XmaRegister::Context0Kick && r <= XmaRegister::Context9Kick) { // Context kick command. // This will kick off the given hardware contexts. // Basically, this kicks the SPU and says "hey, decode that audio!" // XMAEnableContext work_event_->SetBoostPriority();
https://github.com/xenia-canary/xenia-canary/blob/canary_experimental/src/xe...
void CommandProcessor::UpdateWritePointer(uint32_t value) { XE_UNLIKELY_IF(cvars::log_ringbuffer_kickoff_initiator_bts) { LogKickoffInitator(value); } write_ptr_index_ = value; write_ptr_index_event_->SetBoostPriority(); }
Also, this is my merge request and it seems I created kind of a mess of it.
I realize my commits should have been to a dedicated branch instead of master.
Worse, I pulled commits by others to resolve Gitlab pipeline errors.
In hindsight that seems unnecessary and not advised?
Should I start over with a cleaner merge request once a solution ready?
Forgive me while I spin myself up on typical WineHQ Gitlab workflows.