[Bug 60099] New: mmdevapi: add_DefaultAudioCaptureDeviceChanged stub never fires callback (breaks PlayFab Party SDK audio init in Halo Infinite)
http://bugs.winehq.org/show_bug.cgi?id=60099 Bug ID: 60099 Summary: mmdevapi: add_DefaultAudioCaptureDeviceChanged stub never fires callback (breaks PlayFab Party SDK audio init in Halo Infinite) Product: Wine Version: 11.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: mmdevapi Assignee: wine-bugs@list.winehq.org Reporter: sherdwhite@gmail.com Target Milestone: --- Distribution: --- In-game voice and text chat don't work in Halo Infinite under Proton. After digging through the logs I traced it to this: The game uses the PlayFab Party SDK (PartyWin.dll), which spawns a PartyChatWorkerThread. On startup that thread calls RoGetActivationFactory("Windows.Media.Devices.MediaDevice", ...) and then immediately registers handlers via add_DefaultAudioCaptureDeviceChanged and add_DefaultAudioRenderDeviceChanged. Both are stubs that return S_OK but never fire the callback. After those two calls, PartyChatWorkerThread and PartyAudioThread produce zero log output for the entire game session — no capture device is ever opened. Relevant log lines: fixme:combase:RoGetActivationFactory (L"Windows.Media.Devices.MediaDevice", {aa2d9a40-909f-4bba-bf8b-0c0d296f14f0}, ...): semi-stub fixme:mmdevapi:media_device_statics_add_DefaultAudioCaptureDeviceChanged iface ..., handler ..., token ... stub! fixme:mmdevapi:media_device_statics_add_DefaultAudioRenderDeviceChanged iface ..., handler ..., token ... stub! -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 --- Comment #1 from Ken Sharp <imwellcushtymelike@gmail.com> --- This is NOT Proton support. Try again with Wine. https://gitlab.winehq.org/wine/wine/-/wikis/Download -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 --- Comment #2 from Nikolay Sivov <bunglehead@gmail.com> --- (In reply to S. White from comment #0)
In-game voice and text chat don't work in Halo Infinite under Proton. After digging through the logs I traced it to this:
The game uses the PlayFab Party SDK (PartyWin.dll), which spawns a PartyChatWorkerThread. On startup that thread calls RoGetActivationFactory("Windows.Media.Devices.MediaDevice", ...) and then immediately registers handlers via add_DefaultAudioCaptureDeviceChanged and add_DefaultAudioRenderDeviceChanged.
Both are stubs that return S_OK but never fire the callback. After those two calls, PartyChatWorkerThread and PartyAudioThread produce zero log output for the entire game session — no capture device is ever opened.
Should they fire a handler if default device hasn't changed? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 --- Comment #3 from S. White <sherdwhite@gmail.com> --- I assumed there would be some kind of log output once this was initiated. I was having a hard time finding information on how this worked as I haven't seen this issue outside of this game. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 Paul Gofman <pgofman@codeweavers.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pgofman@codeweavers.com --- Comment #4 from Paul Gofman <pgofman@codeweavers.com> --- PlayFab works in general with audio input (and I think voice chat in Halo Infinite likely too for other setups), and overall each other game with working audio input hits those stubs these days. Yes, they are probably supposed to be called only on actual device change. No reason yet to think those are related to the actual issue, likely not the case. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 --- Comment #5 from S. White <sherdwhite@gmail.com> --- Just to clarify, all other game audio works in the game. I can actually type in the text chat but messages just don't show up. All other scoreboard indicators for mic and audio chat are missing. I am not familiar with how this Playfab network works, but I thought it was weird that no other log messages show up after those 3 lines I reported. One other stub that fires at startup is GetCurrentPackageId returning APPMODEL_ERROR_NO_PACKAGE — could that affect Party network authentication if that service later for Xbox? Does this block the Playfab path? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 Stian Low <wineryyyyy@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |wineryyyyy@gmail.com --- Comment #6 from Stian Low <wineryyyyy@gmail.com> --- (In reply to S. White from comment #5)
Just to clarify, all other game audio works in the game. I can actually type in the text chat but messages just don't show up. All other scoreboard indicators for mic and audio chat are missing.
MR-11083 pending fixes mmdevapi devices misordering capture before render for registry: - https://gitlab.winehq.org/wine/wine/-/merge_requests/11083/diffs#diff-conten... Bug did not occur until after first run because somehow audio devices were loaded in correct order for prefix init but reversed for subsequent runs thereafter. A simple test for Engine DJ was to just init a new prefix and verify audio worked and then bugged after closing and rerunning. Reversing order of audio devices loaded for registry with render loaded before capture may also fix but may get reversed again without MR-11083. Bug seems very edge case because I did not find any other apps besides Engine DJ and assumed it was just a rare case of not being robust enough to handle arbitrary audio device order for registry like the vast majority of other apps. Maybe being a Microsoft game Halo Infinite also expects audio device order to match Windows that MR-11083 fixes. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 --- Comment #7 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #6)
Maybe being a Microsoft game Halo Infinite also expects audio device order to match Windows that MR-11083 fixes.
Or rather PlayFab also from Microsoft may expect registry to be configured with render audio devices ordered before capture devices to match Windows. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 --- Comment #8 from Stian Low <wineryyyyy@gmail.com> --- (In reply to Stian Low from comment #7)
Or rather PlayFab also from Microsoft may expect registry to be configured with render audio devices ordered before capture devices to match Windows.
But Paul reports PlayFab working so unless its a version diff then MR-11083 may not apply here. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=60099 S. White <sherdwhite@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |NOTOURBUG Status|UNCONFIRMED |RESOLVED --- Comment #9 from S. White <sherdwhite@gmail.com> --- Turns out I was forcing gamemoderun (Feral gamemode) on for all games. Turning this off fixed the issue. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla