On Tue Apr 8 16:31:42 2025 +0000, Nikolay Sivov wrote:
Where do you see this? It's a two step process. First item should trigger and that's where QUEUE_TIMER is used, but where payload is executed is determined by GetParameters() essentially, with standard queue being a default one. Now in context of the media session, docs talk about explicit per topology branch queues. User queues do behave differently, using MFPutWorkItem() with a user queue makes Invoke happens consistently on another thread. Current logic we have is almost like that except that MFPutWorkItem() always uses the queue it was told to use. I tested this yesterday on Windows and the current rtworkq code is correct, yes. I also modified this MR to create a user queue for MF session sinks. I'll push that tomorrow. If you believe these changes are not a good idea, they're not needed to fix anything specific at the moment.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7696#note_100408