Project

General

Profile

Actions

Emulator Issues #13125

open

Dolphin not opening through Steam while Switch Pro Controller is connected

Added by DolphinBrutus over 1 year ago. Updated about 1 year ago.

Status:
New
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

(This was previously posted, but was falsely assumed to be fixed and is now closed: https://bugs.dolphin-emu.org/issues/13047?tab=notes)

What's the problem? Describe what went wrong.

When trying to open the latest version of Dolphin (5.0-17995) through Steam while a Switch Pro Controller is connected, Dolphin will not open (no window ever appears), and Steam will show the "Stop" button, thinking it is currently running. This only happens while the controller is connected, and Dolphin will be able to open again once the controller disconnects. Occasionally Dolphin would open, but this was very rare and inconsistent. Dolphin can still be opened directly from the Dolphin.exe while the controller is connected. Replacing the Dolphin-x64 folder with version 5.0-16793 fixed the problem and allowed Dolphin to open normally while the controller was connected.

Is the issue present in the latest development version?

Yes (5.0-18076).

What steps will reproduce the problem?

On Windows 10 x64, add Dolphin as a non-Steam game and try to run it while a Switch Pro Controller is connected. Other controllers may have similar effects, but I only have a Switch Pro Controller, so it's the only one I can test.


Files

Actions #1

Updated by DolphinBrutus over 1 year ago

Sorry, I didn't realize I was posting in the wrong category, and I don't know how to move it.

Actions #2

Updated by JosJuice over 1 year ago

  • Tracker changed from Issue to Emulator Issues
  • Project changed from Infrastructure to Emulator
  • Issue type set to Bug
  • Regression set to No
  • Relates to usability set to No
  • Relates to performance set to No
  • Easy set to No
  • Relates to maintainability set to No
  • Operating system N/A added

Regular users don't have permission to move issues between the different projects. I'll move it for you.

Actions #3

Updated by Anonymous over 1 year ago

The linked issue was fixed. I suspect a successive update to SDL caused a regression, or the issue with Switch Pro Controller has different underlying cause than the linked issue.

In any case, the fix is probably just updating the SDL submodule. Unfortunately atm SDL is in the middle of moving to SDL3 so it could be annoying.

Actions #4

Updated by DolphinBrutus over 1 year ago

I tried 5.0-17295 which they said fixed the problem, but it didn't work when I used it so I don't know.

Actions #5

Updated by Anonymous over 1 year ago

Actions #6

Updated by DolphinBrutus over 1 year ago

Okay, I’ll try it when I get the chance.

Actions #7

Updated by funkypc about 1 year ago

I am also facing this problem. It's been erratic for me. Sometimes Dolphin opens, sometimes it does not. The issue is still present on the latest development version 5.0-18485

Actions #8

Updated by Anonymous about 1 year ago

Is dolphin crashing or hanging in the background?
Upload a crashdump and we'll take a look.

Actions #9

Updated by funkypc about 1 year ago

It just seems to hang in the background. Does Dolphin save a log or a crash dump somewhere that I can upload?
I've attached a screenshot of what Task Manager shows.

Actions #10

Updated by Anonymous about 1 year ago

right click on dolphin in task manager and choose "create dump file"

Actions #12

Updated by Anonymous about 1 year ago

here are the stacks if someone wants to squint at them. Relevant threads seem to be 6 and 13

0:000> ~*k

.  0  Id: 49d0.2130 Suspend: 0 Teb: 000000bd`26376000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`264fe5d8 00007ffe`29939a75     ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`264fe5e0 00007ffe`14273301     ntdll!RtlAcquireSRWLockExclusive+0x165
02 000000bd`264fe650 00007ff6`37f1a1ea     msvcp140!mtx_do_lock+0xa5 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp @ 106] 
03 (Inline Function) --------`--------     Dolphin!std::_Mutex_base::lock+0x5 [v:\14.34.31933\include\mutex @ 50] 
04 000000bd`264fe6b0 00007ff6`37f1afaa     Dolphin!std::_Lock_attempt_small<std::recursive_mutex,std::recursive_mutex>+0x1a [v:\14.34.31933\include\mutex @ 394] 
05 (Inline Function) --------`--------     Dolphin!std::_Lock_nonmember1+0x1a [v:\14.34.31933\include\mutex @ 412] 
06 (Inline Function) --------`--------     Dolphin!std::lock+0x1a [v:\14.34.31933\include\mutex @ 418] 
07 (Inline Function) --------`--------     Dolphin!std::scoped_lock<std::recursive_mutex,std::recursive_mutex>::{ctor}+0x30 [v:\14.34.31933\include\mutex @ 448] 
08 000000bd`264fe6e0 00007ff6`37f0b859     Dolphin!ControllerEmu::EmulatedController::UpdateReferences+0x4a [d:\Source\Core\InputCommon\ControllerEmu\ControllerEmu.cpp @ 44] 
09 000000bd`264fe740 00007ff6`37f2bc85     Dolphin!InputConfig::LoadConfig+0xec9 [d:\Source\Core\InputCommon\InputConfig.cpp @ 143] 
0a 000000bd`264fead0 00007ff6`37d5fcc6     Dolphin!Wiimote::LoadConfig+0x15 [d:\Source\Core\Core\HW\Wiimote.cpp @ 208] 
0b (Inline Function) --------`--------     Dolphin!MainWindow::InitControllers+0xa9 [d:\Source\Core\DolphinQt\MainWindow.cpp @ 338] 
0c 000000bd`264feb00 00007ff6`37d5e5e0     Dolphin!MainWindow::MainWindow+0x1f6 [d:\Source\Core\DolphinQt\MainWindow.cpp @ 223] 
0d 000000bd`264feed0 00007ff6`37d5ed8d     Dolphin!app_main+0x11e0 [d:\Source\Core\DolphinQt\Main.cpp @ 258] 
0e 000000bd`264ff6c0 00007ff6`382e637a     Dolphin!wWinMain+0x10d [d:\Source\Core\DolphinQt\Main.cpp @ 320] 
0f (Inline Function) --------`--------     Dolphin!invoke_main+0x21 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 118] 
10 000000bd`264ff710 00007ffe`27fd55a0     Dolphin!__scrt_common_main_seh+0x106 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] 
11 000000bd`264ff750 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
12 000000bd`264ff780 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   1  Id: 49d0.1df8 Suspend: 0 Teb: 000000bd`26380000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`269fedb8 00007ffe`271ef310     ntdll!NtWaitForMultipleObjects+0x14
01 000000bd`269fedc0 00007ffe`2403a387     KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000bd`269ff0b0 00007ffe`2403a124     CoreMessaging!Microsoft::CoreUI::Dispatch::WaitController::Callback_WaitAny+0xb7
03 000000bd`269ff1a0 00007ffe`24039e7e     CoreMessaging!Microsoft::CoreUI::Dispatch::Win32EventLoopBridge::Callback_DoWait+0x114
04 000000bd`269ff270 00007ffe`2403c7a1     CoreMessaging!Microsoft::CoreUI::Dispatch::Win32EventLoopBridge::Callback_Wait+0x5e
05 000000bd`269ff330 00007ffe`2403d072     CoreMessaging!Microsoft::CoreUI::Dispatch::WaitCollection::Callback_DoGeneralWait+0x1e1
06 000000bd`269ff3f0 00007ffe`2403bd1d     CoreMessaging!Microsoft::CoreUI::Dispatch::WaitController::Callback_OnDispatch+0x312
07 000000bd`269ff4c0 00007ffe`2403804a     CoreMessaging!Microsoft::CoreUI::Dispatch::EventLoop::Callback_RunCoreLoop+0x2ed
08 000000bd`269ff580 00007ffe`24061e79     CoreMessaging!Microsoft::CoreUI::Dispatch::Win32EventLoopBridge::Callback_Run+0x41a
09 000000bd`269ff630 00007ffe`24061daf     CoreMessaging!Microsoft::CoreUI::Dispatch::EventLoop::Callback_Run+0xa9
0a 000000bd`269ff670 00007ffe`240669b6     CoreMessaging!Microsoft::CoreUI::Messaging::MessageSession::InterfaceImplementation$::_Microsoft_CoreUI_IExportMessageSession::Dispatcher::Run+0x2f
0b 000000bd`269ff6a0 00007ffe`0fe56c95     CoreMessaging!Microsoft::CoreUI::IExportMessageSession::ExportAdapter$::Run+0x66
0c 000000bd`269ff6e0 00007ffe`0fe55d29     inputhost!MessagingThread::ThreadProc+0x10d
0d 000000bd`269ff740 00007ffe`27fd55a0     inputhost!<lambda_376318154f061e76a4fa5387c7eed0ca>::<lambda_invoker_cdecl>+0x9
0e 000000bd`269ff770 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
0f 000000bd`269ff7a0 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   2  Id: 49d0.40d0 Suspend: 0 Teb: 000000bd`26384000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`26bff638 00007ffe`2998aaf7     ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`26bff640 00007ffe`271fbeb9     ntdll!RtlSleepConditionVariableSRW+0x137
02 000000bd`26bff6c0 00007ffe`14272c55     KERNELBASE!SleepConditionVariableSRW+0x29
03 000000bd`26bff700 00007ffe`14272e03     msvcp140!Concurrency::details::stl_condition_variable_win7::wait_for+0x15 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\primitives.hpp @ 167] 
04 000000bd`26bff730 00007ff6`37e06c2d     msvcp140!_Cnd_timedwait+0x93 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\cond.cpp @ 75] 
05 (Inline Function) --------`--------     Dolphin!std::condition_variable::wait_until+0x1d [v:\14.34.31933\include\mutex @ 671] 
06 (Inline Function) --------`--------     Dolphin!std::condition_variable::wait_for+0x53 [v:\14.34.31933\include\mutex @ 619] 
07 (Inline Function) --------`--------     Dolphin!IoThreadHolder::Start::__l2::<lambda_1>::operator()+0x96 [d:\Externals\discord-rpc\src\discord_rpc.cpp @ 95] 
08 (Inline Function) --------`--------     Dolphin!std::invoke+0x96 [v:\14.34.31933\include\type_traits @ 1562] 
09 000000bd`26bff7a0 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<`IoThreadHolder::Start'::`2'::<lambda_1> >,0>+0xad [v:\14.34.31933\include\thread @ 55] 
0a 000000bd`26bff7e0 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
0b 000000bd`26bff810 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
0c 000000bd`26bff840 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   3  Id: 49d0.1eac Suspend: 0 Teb: 000000bd`26386000 Unfrozen "Analytics"
 # Child-SP          RetAddr               Call Site
00 000000bd`26cff948 00007ffe`2998aaf7     ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`26cff950 00007ffe`271fbeb9     ntdll!RtlSleepConditionVariableSRW+0x137
02 000000bd`26cff9d0 00007ffe`14272c09     KERNELBASE!SleepConditionVariableSRW+0x29
03 (Inline Function) --------`--------     msvcp140!Concurrency::details::stl_condition_variable_win7::wait_for+0x15 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\primitives.hpp @ 167] 
04 000000bd`26cffa10 00007ffe`14272e9a     msvcp140!Concurrency::details::stl_condition_variable_win7::wait+0x19 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\primitives.hpp @ 161] 
05 000000bd`26cffa40 00007ff6`381969ea     msvcp140!_Cnd_wait+0x3a [D:\a\_work\1\s\src\vctools\crt\github\stl\src\cond.cpp @ 60] 
06 (Inline Function) --------`--------     Dolphin!std::condition_variable::wait+0x10 [v:\14.34.31933\include\mutex @ 598] 
07 (Inline Function) --------`--------     Dolphin!std::condition_variable::wait+0x1a [v:\14.34.31933\include\mutex @ 604] 
08 (Inline Function) --------`--------     Dolphin!Common::Event::Wait+0x3a [d:\Source\Core\Common\Event.h @ 55] 
09 000000bd`26cffa70 00007ff6`37d3f22f     Dolphin!Common::AnalyticsReporter::ThreadProc+0x6a [d:\Source\Core\Common\Analytics.cpp @ 169] 
0a (Inline Function) --------`--------     Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578] 
0b 000000bd`26cffb10 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56] 
0c 000000bd`26cffb40 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
0d 000000bd`26cffb70 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
0e 000000bd`26cffba0 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   4  Id: 49d0.fa4 Suspend: 0 Teb: 000000bd`2638a000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`26eff7c8 00007ffe`2997b873     ntdll!NtDelayExecution+0x14
01 000000bd`26eff7d0 00007ffe`271eb031     ntdll!RtlDelayExecution+0x43
02 000000bd`26eff800 00007ffe`1edad1c7     KERNELBASE!SleepEx+0x71
03 000000bd`26eff880 00007ffe`1edad02c     Windows_Gaming_Input!ProviderManagerWorker::WorkerThreadProc+0x157
04 000000bd`26effb10 00007ffe`27fd55a0     Windows_Gaming_Input!ProviderManagerWorker::WorkerThreadProcThunk+0x1c
05 000000bd`26effb40 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
06 000000bd`26effb70 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   5  Id: 49d0.2c64 Suspend: 0 Teb: 000000bd`2638c000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`26fff908 00007ffe`2997b873     ntdll!NtDelayExecution+0x14
01 000000bd`26fff910 00007ffe`271eb031     ntdll!RtlDelayExecution+0x43
02 000000bd`26fff940 00007ff6`386c3868     KERNELBASE!SleepEx+0x71
03 000000bd`26fff9c0 00007ff6`38105cf5     Dolphin!SDL_WaitEventTimeout_REAL+0x788 [d:\Externals\SDL\SDL\src\events\SDL_events.c @ 1172] 
04 000000bd`26fffa70 00007ff6`38104ece     Dolphin!`ciface::SDL::InputBackend::InputBackend'::`2'::<lambda_1>::operator()+0x245 [d:\Source\Core\InputCommon\ControllerInterface\SDL\SDL.cpp @ 242] 
05 (Inline Function) --------`--------     Dolphin!std::invoke+0x5 [v:\14.34.31933\include\type_traits @ 1562] 
06 000000bd`26fffba0 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<`ciface::SDL::InputBackend::InputBackend'::`2'::<lambda_1> >,0>+0xe [v:\14.34.31933\include\thread @ 56] 
07 000000bd`26fffbd0 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
08 000000bd`26fffc00 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
09 000000bd`26fffc30 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   6  Id: 49d0.22a4 Suspend: 0 Teb: 000000bd`26390000 Unfrozen "SDL_joystick"
 # Child-SP          RetAddr               Call Site
00 000000bd`2710fb68 00007ffe`296347ae     win32u!NtUserGetMessage+0x14
01 000000bd`2710fb70 00007ffd`f3277555     user32!GetMessageW+0x2e
02 000000bd`2710fbd0 00007ff6`3871f62c     gameoverlayrenderer64!OverlayHookD3D3+0x229f5
03 (Inline Function) --------`--------     Dolphin!SDL_WaitForDeviceNotification+0x3c [d:\Externals\SDL\SDL\src\joystick\windows\SDL_windowsjoystick.c @ 333] 
04 000000bd`2710fc00 00007ff6`386ab4bf     Dolphin!SDL_JoystickThread+0x9c [d:\Externals\SDL\SDL\src\joystick\windows\SDL_windowsjoystick.c @ 368] 
05 000000bd`2710fc90 00007ff6`386f3f2f     Dolphin!SDL_RunThread+0x2f [d:\Externals\SDL\SDL\src\thread\SDL_thread.c @ 296] 
06 (Inline Function) --------`--------     Dolphin!RunThread+0x9 [d:\Externals\SDL\SDL\src\thread\windows\SDL_systhread.c @ 80] 
07 000000bd`2710fcc0 00007ffe`27fd55a0     Dolphin!RunThreadViaCreateThread+0xf [d:\Externals\SDL\SDL\src\thread\windows\SDL_systhread.c @ 94] 
08 000000bd`2710fcf0 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
09 000000bd`2710fd20 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   7  Id: 49d0.1150 Suspend: 0 Teb: 000000bd`26394000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`2721fe28 00007ffe`2962d33e     win32u!NtUserMsgWaitForMultipleObjectsEx+0x14
01 000000bd`2721fe30 00007ffe`02222bb5     user32!RealMsgWaitForMultipleObjectsEx+0x1e
02 000000bd`2721fe70 00007ffe`27fd55a0     dinput8!CEm_LL_ThreadProc+0x115
03 000000bd`2721fee0 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
04 000000bd`2721ff10 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   8  Id: 49d0.231c Suspend: 0 Teb: 000000bd`26396000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`2731f3a8 00007ffe`271ef310     ntdll!NtWaitForMultipleObjects+0x14
01 000000bd`2731f3b0 00007ffe`271ef20e     KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000bd`2731f6a0 00007ffd`b37e0430     KERNELBASE!WaitForMultipleObjects+0xe
03 000000bd`2731f6e0 00007ffe`27fd55a0     Qt6Core!qt_adopted_thread_watcher_function+0xf0 [E:\qsc\qt-everywhere-src-6.3.0\qtbase\src\corelib\thread\qthread_win.cpp @ 204] 
04 000000bd`2731f780 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
05 000000bd`2731f7b0 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

   9  Id: 49d0.5068 Suspend: 0 Teb: 000000bd`26398000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`2741faa8 00007ffe`271f0233     ntdll!NtRemoveIoCompletion+0x14
01 000000bd`2741fab0 00007ff6`3859bd55     KERNELBASE!GetQueuedCompletionStatus+0x53
02 000000bd`2741fb10 00007ffe`275e6c0c     Dolphin!windows_iocp_thread+0x75 [d:\Externals\libusb\libusb\libusb\os\windows_common.c @ 443] 
03 000000bd`2741fba0 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
04 000000bd`2741fbd0 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
05 000000bd`2741fc00 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

  10  Id: 49d0.41d0 Suspend: 0 Teb: 000000bd`2639a000 Unfrozen "libusb thread"
 # Child-SP          RetAddr               Call Site
00 000000bd`2751f788 00007ffe`271ef310     ntdll!NtWaitForMultipleObjects+0x14
01 000000bd`2751f790 00007ffe`271ef20e     KERNELBASE!WaitForMultipleObjectsEx+0xf0
02 000000bd`2751fa80 00007ff6`3859c422     KERNELBASE!WaitForMultipleObjects+0xe
03 000000bd`2751fac0 00007ff6`38598ee0     Dolphin!usbi_wait_for_events+0x62 [d:\Externals\libusb\libusb\libusb\os\events_windows.c @ 176] 
04 000000bd`2751fb00 00007ff6`38599b2a     Dolphin!handle_events+0x120 [d:\Externals\libusb\libusb\libusb\io.c @ 2244] 
05 000000bd`2751fb60 00007ff6`380a3be3     Dolphin!libusb_handle_events_timeout_completed+0x51a [d:\Externals\libusb\libusb\libusb\io.c @ 2361] 
06 000000bd`2751fbb0 00007ff6`37d3f22f     Dolphin!LibusbUtils::Context::Impl::EventThread+0x63 [d:\Source\Core\Core\LibusbUtils.cpp @ 78] 
07 (Inline Function) --------`--------     Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578] 
08 000000bd`2751fc30 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56] 
09 000000bd`2751fc60 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
0a 000000bd`2751fc90 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
0b 000000bd`2751fcc0 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

  11  Id: 49d0.4404 Suspend: 0 Teb: 000000bd`2639c000 Unfrozen "Wiimote Scanning Thread"
 # Child-SP          RetAddr               Call Site
00 000000bd`2761f698 00007ffe`29939a75     ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`2761f6a0 00007ffe`14273301     ntdll!RtlAcquireSRWLockExclusive+0x165
02 000000bd`2761f710 00007ff6`37f1a1ea     msvcp140!mtx_do_lock+0xa5 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp @ 106] 
03 (Inline Function) --------`--------     Dolphin!std::_Mutex_base::lock+0x5 [v:\14.34.31933\include\mutex @ 50] 
04 000000bd`2761f770 00007ff6`37f1afaa     Dolphin!std::_Lock_attempt_small<std::recursive_mutex,std::recursive_mutex>+0x1a [v:\14.34.31933\include\mutex @ 394] 
05 (Inline Function) --------`--------     Dolphin!std::_Lock_nonmember1+0x1a [v:\14.34.31933\include\mutex @ 412] 
06 (Inline Function) --------`--------     Dolphin!std::lock+0x1a [v:\14.34.31933\include\mutex @ 418] 
07 (Inline Function) --------`--------     Dolphin!std::scoped_lock<std::recursive_mutex,std::recursive_mutex>::{ctor}+0x30 [v:\14.34.31933\include\mutex @ 448] 
08 000000bd`2761f7a0 00007ff6`37f0c24f     Dolphin!ControllerEmu::EmulatedController::UpdateReferences+0x4a [d:\Source\Core\InputCommon\ControllerEmu\ControllerEmu.cpp @ 44] 
09 (Inline Function) --------`--------     Dolphin!InputConfig::RegisterHotplugCallback::__l2::<lambda_1>::operator()+0x25 [d:\Source\Core\InputCommon\InputConfig.cpp @ 216] 
0a (Inline Function) --------`--------     Dolphin!std::invoke+0x25 [v:\14.34.31933\include\type_traits @ 1562] 
0b (Inline Function) --------`--------     Dolphin!std::_Invoker_ret<void>::_Call+0x25 [v:\14.34.31933\include\functional @ 670] 
0c 000000bd`2761f800 00007ff6`37f1e064     Dolphin!std::_Func_impl_no_alloc<`InputConfig::RegisterHotplugCallback'::`2'::<lambda_1>,void>::_Do_call+0x2f [v:\14.34.31933\include\functional @ 833] 
0d (Inline Function) --------`--------     Dolphin!std::_Func_class<void>::operator()+0xf [v:\14.34.31933\include\functional @ 874] 
0e 000000bd`2761f830 00007ff6`37f1e119     Dolphin!ControllerInterface::InvokeDevicesChangedCallbacks+0x54 [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 450] 
0f 000000bd`2761f870 00007ff6`37f3f77b     Dolphin!ControllerInterface::PlatformPopulateDevices+0x69 [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 212] 
10 000000bd`2761f8a0 00007ff6`37d3f22f     Dolphin!WiimoteReal::WiimoteScanner::ThreadFunc+0x37b [d:\Source\Core\Core\HW\WiimoteReal\WiimoteReal.cpp @ 705] 
11 (Inline Function) --------`--------     Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578] 
12 000000bd`2761fb60 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56] 
13 000000bd`2761fb90 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
14 000000bd`2761fbc0 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
15 000000bd`2761fbf0 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

  12  Id: 49d0.47b0 Suspend: 0 Teb: 000000bd`2639e000 Unfrozen "Wiimote Pool Thread"
 # Child-SP          RetAddr               Call Site
00 000000bd`2771f6f8 00007ffe`2997b873     ntdll!NtDelayExecution+0x14
01 000000bd`2771f700 00007ffe`271eb031     ntdll!RtlDelayExecution+0x43
02 000000bd`2771f730 00007ffe`1427313c     KERNELBASE!SleepEx+0x71
03 000000bd`2771f7b0 00007ff6`37f3e03e     msvcp140!_Thrd_sleep+0x3c [D:\a\_work\1\s\src\vctools\crt\github\stl\src\cthread.cpp @ 77] 
04 (Inline Function) --------`--------     Dolphin!std::this_thread::sleep_until+0x9d [v:\14.34.31933\include\thread @ 200] 
05 000000bd`2771f800 00007ff6`37d3f22f     Dolphin!WiimoteReal::WiimoteScanner::PoolThreadFunc+0x14e [d:\Source\Core\Core\HW\WiimoteReal\WiimoteReal.cpp @ 632] 
06 (Inline Function) --------`--------     Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578] 
07 000000bd`2771f8f0 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56] 
08 000000bd`2771f920 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
09 000000bd`2771f950 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
0a 000000bd`2771f980 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

  13  Id: 49d0.a80 Suspend: 0 Teb: 000000bd`263a0000 Unfrozen "HotkeyScheduler"
 # Child-SP          RetAddr               Call Site
00 000000bd`2781f0c8 00007ffe`29939a75     ntdll!NtWaitForAlertByThreadId+0x14
01 000000bd`2781f0d0 00007ffe`14273301     ntdll!RtlAcquireSRWLockExclusive+0x165
02 000000bd`2781f140 00007ff6`37f1e373     msvcp140!mtx_do_lock+0xa5 [D:\a\_work\1\s\src\vctools\crt\github\stl\src\mutex.cpp @ 106] 
03 (Inline Function) --------`--------     Dolphin!std::_Mutex_base::lock+0x8 [v:\14.34.31933\include\mutex @ 50] 
04 (Inline Function) --------`--------     Dolphin!std::lock_guard<std::recursive_mutex>::{ctor}+0x8 [v:\14.34.31933\include\mutex @ 427] 
05 000000bd`2781f1a0 00007ff6`38214d9d     Dolphin!ControllerInterface::RemoveDevice+0x43 [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 343] 
06 (Inline Function) --------`--------     Dolphin!ciface::WGInput::RemoveDevice+0x34 [d:\Source\Core\InputCommon\ControllerInterface\WGInput\WGInput.cpp @ 654] 
07 (Inline Function) --------`--------     Dolphin!ciface::WGInput::Init::__l6::<lambda_1>::operator()+0x34 [d:\Source\Core\InputCommon\ControllerInterface\WGInput\WGInput.cpp @ 683] 
08 000000bd`2781f210 00007ffd`f3297917     Dolphin!winrt::impl::delegate<winrt::Windows::Foundation::EventHandler<winrt::Windows::Gaming::Input::RawGameController>,`ciface::WGInput::Init'::`6'::<lambda_1> >::Invoke+0x5d [w:\Include\10.0.22621.0\cppwinrt\winrt\Windows.Foundation.h @ 886] 
09 000000bd`2781f280 00007ffd`f3276f52     gameoverlayrenderer64!VulkanSteamOverlayProcessCapturedFrame+0x4987
0a 000000bd`2781f2c0 00007ffd`f3276dfb     gameoverlayrenderer64!OverlayHookD3D3+0x223f2
0b 000000bd`2781f310 00007ffd`f3267130     gameoverlayrenderer64!OverlayHookD3D3+0x2229b
0c 000000bd`2781f340 00007ff6`382760dc     gameoverlayrenderer64!OverlayHookD3D3+0x125d0
0d 000000bd`2781f370 00007ff6`37f1e71f     Dolphin!ciface::DInput::Joystick::UpdateInput+0x1c [d:\Source\Core\InputCommon\ControllerInterface\DInput\DInputJoystick.cpp @ 232] 
0e 000000bd`2781f6b0 00007ff6`37d5a962     Dolphin!ControllerInterface::UpdateInput+0x13f [d:\Source\Core\InputCommon\ControllerInterface\ControllerInterface.cpp @ 383] 
0f 000000bd`2781f7a0 00007ff6`37d3f22f     Dolphin!HotkeyScheduler::Run+0xc2 [d:\Source\Core\DolphinQt\HotkeyScheduler.cpp @ 154] 
10 (Inline Function) --------`--------     Dolphin!std::invoke+0x6 [v:\14.34.31933\include\type_traits @ 1578] 
11 000000bd`2781fed0 00007ffe`275e6c0c     Dolphin!std::thread::_Invoke<std::tuple<void (__cdecl Common::WorkQueueThread<GameTracker::Command>::*)(void),Common::WorkQueueThread<GameTracker::Command> *>,0,1>+0xf [v:\14.34.31933\include\thread @ 56] 
12 000000bd`2781ff00 00007ffe`27fd55a0     ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x4c
13 000000bd`2781ff30 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
14 000000bd`2781ff60 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

  14  Id: 49d0.2018 Suspend: 0 Teb: 000000bd`263c0000 Unfrozen
 # Child-SP          RetAddr               Call Site
00 000000bd`265ff828 00007ffe`29936cdf     ntdll!NtWaitForWorkViaWorkerFactory+0x14
01 000000bd`265ff830 00007ffe`27fd55a0     ntdll!TppWorkerThread+0x2df
02 000000bd`265ffb20 00007ffe`2992485b     kernel32!BaseThreadInitThunk+0x10
03 000000bd`265ffb50 00000000`00000000     ntdll!RtlUserThreadStart+0x2b

Actions #13

Updated by Anonymous about 1 year ago

not sure if it's a deadlock or some infloop is entered where devices are added/removed forever.

Actions #14

Updated by Anonymous about 1 year ago

btw does this repro with ps5 or xbox(series) controllers?

also, which settings within steam controller settings should be set in order to repro this?

Actions #15

Updated by funkypc about 1 year ago

I don't have any PS5 or Xbox controllers, so I can't test that. However, my Googling in the past on this issue led me to believe that only Switch controllers are affected.

In Steam, I'm using the 'Gamepad' template created by Valve. I think it's the default template.
I've attached a screenshot of the controller settings I'm currently using. I've tried changing settings and it seems to crash regardless of which settings I use.

Dolphin will also crash in the following scenario, which may be related:

  1. Successfully start Dolphin from Steam with the Switch Pro controller connected. (As stated, this is erratic, but sometimes works.)
  2. Open Dolphin GameCube Controller settings.
  3. Disconnect/unplug the Switch Pro controller and click 'Refresh' under Device - This will cause Dolphin to crash.
    Crashdump: https://westerngovernorsuniversity-my.sharepoint.com/:u:/g/personal/cplett_wgu_edu/Ea7xqV9ytipOuAGiBYQ2wNQBwB4Xzgjhqe-w19aOV-mRaA?e=sU5YP7
Actions #16

Updated by DolphinBrutus about 1 year ago

Sorry for taking so long

The problem is still present in the version you told me to try and the current, latest development version (5.0-18505). I am also using the default "Gamepad" template with the "Nintendo Button Layout" option turned on, though turning it off does nothing. Here's the dump file I got if you want to look at it: https://www.dropbox.com/s/3g21p0w87fg3c0r/Dolphin.DMP?dl=0

Actions #17

Updated by funkypc about 1 year ago

I think this may have been fixed in a recent commit in the SDL2 branch. Dolphin may just need to update from the SDL2 branch to fix this. https://github.com/libsdl-org/SDL/commit/d77eb8a8d5c201e53de7019d26d81500fa9897a0

Actions #19

Updated by funkypc about 1 year ago

Thanks for the quick update.
Unfortunately, pr-11581 does not fix the problem for me.

Actions

Also available in: Atom PDF