Project

General

Profile

Emulator Issues #9692

Pause on Focus Lost doesn't properly work in Linux

Added by orbea over 3 years 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

OS: Slackware64-current
dolphin-emu-e1a76b4_2016.07.12-x86_64-1_git

When using "Pause on Focus Lost" under config/interface and then switching to another window a single cpu core (AMD FX-6350) throttles at 100% until I switch back to dolphin-emu as the active window. Disabling the feature stops the problem and using gdb I found thread 5 as the possible culprit and got this backtrace.

==============================================================

GNU gdb (GDB) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-slackware-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from dolphin-emu...done.
(gdb) run
Starting program: /usr/games/dolphin-emu
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
02:31:22 PM: Debug: Failed to connect to session manager: SESSION_MANAGER environment variable not defined
[New Thread 0x7fffde68b700 (LWP 1024)]
[New Thread 0x7fffdde8a700 (LWP 1026)]
[New Thread 0x7fffd7b9a700 (LWP 1028)]
[New Thread 0x7fffd7136700 (LWP 1029)]
[New Thread 0x7fffd4933700 (LWP 1047)]
[New Thread 0x7fffc5c7e700 (LWP 1054)]
[New Thread 0x7fffc49c0700 (LWP 1078)]
[New Thread 0x7fffc415e700 (LWP 1079)]
[Thread 0x7fffc415e700 (LWP 1079) exited]
[New Thread 0x7fffc415e700 (LWP 1080)]
[New Thread 0x7fffb3fc6700 (LWP 1081)]
[New Thread 0x7fffa7bff700 (LWP 1082)]

Thread 1 "dolphin-emu" received signal SIGINT, Interrupt.
0x00007fffef05c30d in poll () from /lib64/libc.so.6
(gdb) t a a f

Thread 12 (Thread 0x7fffa7bff700 (LWP 1082)):
#0 0x00007fffeeae136f in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 11 (Thread 0x7fffb3fc6700 (LWP 1081)):
#0 0x00007fffeeae136f in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 10 (Thread 0x7fffc415e700 (LWP 1080)):
#0 0x00007fffef05c30d in poll () from /lib64/libc.so.6

Thread 8 (Thread 0x7fffc49c0700 (LWP 1078)):
#0 0x00007fffef02cc4d in nanosleep () from /lib64/libc.so.6

Thread 7 (Thread 0x7fffc5c7e700 (LWP 1054)):
#0 0x00007fffeeae136f in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 6 (Thread 0x7fffd4933700 (LWP 1047)):
#0 0x00007fffeeae1718 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 5 (Thread 0x7fffd7136700 (LWP 1029)):
#0 0x00000000006bf753 in std::atomic::load (this=0x1471351 Fifo::s_gpu_mainloop+81, m=std::memory_order_seq_cst) at /usr/include/c++/5.3.0/atomic:102
102 { return _M_base.load(
m); }

Thread 4 (Thread 0x7fffd7b9a700 (LWP 1028)):
#0 0x00007fffeeae1718 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 3 (Thread 0x7fffdde8a700 (LWP 1026)):
#0 0x00007fffeeae136f in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0

Thread 2 (Thread 0x7fffde68b700 (LWP 1024)):
#0 0x00007fffef05c30d in poll () from /lib64/libc.so.6

Thread 1 (Thread 0x7ffff7f8f980 (LWP 1008)):
#0 0x00007fffef05c30d in poll () from /lib64/libc.so.6
(gdb) thread 5
[Switching to thread 5 (Thread 0x7fffd7136700 (LWP 1029))]
#0 0x00000000006bf753 in std::atomic::load (this=0x1471351 Fifo::s_gpu_mainloop+81, m=std::memory_order_seq_cst) at /usr/include/c++/5.3.0/atomic:102
102 { return _M_base.load(
m); }
(gdb) bt full
#0 0x00000000006bf753 in std::atomic::load(std::memory_order) const (this=0x1471351 Fifo::s_gpu_mainloop+81, m=std::memory_order_seq_cst)
at /usr/include/c++/5.3.0/atomic:102
#1 0x00000000007439bb in Common::Flag::IsSet() const (this=0x1471351 Fifo::s_gpu_mainloop+81) at /tmp/SBo/dolphin-emu/Source/Core/Common/Flag.h:33
#2 0x00000000008d49c0 in Common::BlockingLoop::RunFifo::RunGpuLoop()::<lambda() >(Fifo::, int64_t) (this=0x1471300 Fifo::s_gpu_mainloop, payload=..., timeout=100)
at /tmp/SBo/dolphin-emu/Source/Core/Common/BlockingLoop.h:99
#3 0x00000000008d43d0 in Fifo::RunGpuLoop() () at /tmp/SBo/dolphin-emu/Source/Core/VideoCommon/Fifo.cpp:393
#4 0x00000000006d428d in Core::EmuThread() () at /tmp/SBo/dolphin-emu/Source/Core/Core/Core.cpp:603
core_parameter =
@0x1abfcf0: { = {}, m_WiiSDCard = false, m_WiiKeyboard = false, m_WiimoteContinuousScanning = false, m_WiimoteEnableSpeaker = false, m_LastFilename = {static npos = , _M_dataplus = {std::allocator<char> = {<
gnu_cxx::new_allocator> = {}, }, M_p = 0x1e02258 "/home/orbea/games/roms/gamecube/Tales of Symphonia_d1of2 (USA - UNDUB).iso"}}, m_ISOFolder = {, std::allocator >, std::allocator, std::allocator > > >> = {_M_impl = {, std::allocator > >> = {<gnu_cxx::new_allocator, std::allocator > >> = {}, }, _M_start = 0x1aace50, _M_finish = 0x1aace60, _M_end_of_storage = 0x1aace60}}, }, m_RecursiveISOFolder = false, bEnableDebugging = false, bAutomaticStart = false, bBootToPause = false, iCPUCore = 5, bJITNoBlockCache = false, bJITNoBlockLinking = false, bJITOff = false, bJITLoadStoreOff = false, bJITLoadStorelXzOff = false, bJITLoadStorelwzOff = false, bJITLoadStorelbzxOff = false, bJITLoadStoreFloatingOff = false, bJITLoadStorePairedOff = false, bJITFloatingPointOff = false, bJITIntegerOff = false, bJITPairedOff = false, bJITSystemRegistersOff = false, bJITBranchOff = false, bJITILTimeProfiling = false, bJITILOutputIR = false, bFastmem = true, bFPRF = false, bAccurateNaNs = false, iTimingVariance = 40, bCPUThread = true, bDSPThread = true, bDSPHLE = true, bSkipIdle = true, bSyncGPUOnSkipIdleHack = true, bNTSC = true, bForceNTSCJ = false, bHLE_BS2 = true, bEnableCheats = false, bEnableMemcardSdWriting = true, bDPL2Decoder = true, iLatency = 30, bRunCompareServer = false, bRunCompareClient = false, bMMU = false, bDCBZOFF = false, iBBDumpPort = -1, bFastDiscSpeed = false, bSyncGPU = true, iSyncGpuMaxDistance = 200000, iSyncGpuMinDistance = -200000, fSyncGpuOverclock = 1, SelectedLanguage = 0, bOverrideGCLanguage = false, bWii = false, bConfirmStop = true, bHideCursor = true, bAutoHideCursor = false, bUsePanicHandlers = true, bOnScreenDisplayMessages = true, theme_name = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1aba6d8 "Clean"}}, strFullscreenResolution = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1ac2cd8 "DVI-I-1: 1680x1050"}}, iRenderWindowXPos = 0, iRenderWindowYPos = 514, iRenderWindowWidth = 1678, iRenderWindowHeight = 526, bRenderWindowAutoSize = false, bKeepWindowOnTop = false, bFullscreen = false, bRenderToMain = false, bProgressive = false, bPAL60 = false, bDisableScreenSaver = true, iPosX = 0, iPosY = 507, iWidth = 839, iHeight = 535, m_analytics_id = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1abedb8 "a850cc59c94736fff0ae39f8b57c6cf9"}}, m_analytics_enabled = true, m_analytics_permission_asked = true, bLoopFifoReplay = true, m_BootType = SConfig::BOOT_ISO, m_strVideoBackend = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1ae9e78 "OGL"}}, m_strGPUDeterminismMode = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1ae9f68 "auto"}}, m_GPUDeterminismMode = GPU_DETERMINISM_AUTO, m_strFilename = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1e02258 "/home/orbea/games/roms/gamecube/Tales of Symphonia_d1of2 (USA - UNDUB).iso"}}, m_strBootROM = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_strSRAM = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1abaeb8 "/home/orbea/.local/share/dolphin-emu/GC/SRAM.raw"}}, m_strDefaultISO = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_strDVDRoot = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_strApploader = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_strUniqueID = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x2035758 "GQSEAF"}}, m_strName = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x20c97f8 "TALES OF SYMPHONIA 1"}}, m_revision = 0, m_perfDir = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_NANDPath = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_DumpPath = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_strMemoryCardA = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1ae8f68 "/home/orbea/.local/share/dolphin-emu/GC/MemoryCardA.USA.raw"}}, m_strMemoryCardB = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x1ae9038 "/home/orbea/.local/share/dolphin-emu/GC/MemoryCardB.USA.raw"}}, m_strGbaCartA = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_strGbaCartB = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_EXIDevice = {EXIDEVICE_MEMORYCARD, EXIDEVICE_NONE, EXIDEVICE_NONE}, m_SIDevice = {SIDEVICE_GC_CONTROLLER, SIDEVICE_NONE, SIDEVICE_NONE, SIDEVICE_NONE}, m_bba_mac = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_InterfaceLanguage = 0, m_EmulationSpeed = 1, m_OCEnable = false, m_OCFactor = 2, m_InterfaceToolbar = true, m_InterfaceStatusbar = true, m_InterfaceLogWindow = false, m_InterfaceLogConfigWindow = false, m_InterfaceExtendedFPSInfo = false, m_ListDrives = false, m_ListWad = true, m_ListElfDol = true, m_ListWii = true, m_ListGC = true, m_ListPal = true, m_ListUsa = true, m_ListJap = true, m_ListAustralia = true, m_ListFrance = true, m_ListGermany = true, m_ListItaly = true, m_ListKorea = true, m_ListNetherlands = true, m_ListRussia = true, m_ListSpain = true, m_ListTaiwan = true, m_ListWorld = true, m_ListUnknown = true, m_ListSort = 3, m_ListSort2 = 0, m_showSystemColumn = true, m_showBannerColumn = true, m_showMakerColumn = true, m_showFileNameColumn = false, m_showIDColumn = false, m_showRegionColumn = true, m_showSizeColumn = true, m_showStateColumn = true, m_ColorCompressed = true, m_WirelessMac = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_PauseMovie = false, m_ShowLag = false, m_ShowFrameCount = false, m_strMovieAuthor = {static npos = , _M_dataplus = {std::allocator<char> = {<gnu_cxx::new_allocator> = {}, }, _M_p = 0x7fffee3c3138 std::string::_Rep::_S_empty_rep_storage+24 ""}}, m_FrameSkip = 0, m_DumpFrames = false, m_DumpFramesSilent = false, m_ShowInputDisplay = false, m_PauseOnFocusLost = true, m_DSPEnableJIT = false, m_DSPCaptureLog = false, m_DumpAudio = false, m_IsMuted = false, m_DumpUCode = false, m_Volume = 100, sBackend = {static npos = , _M_dataplus = {std::allocator<char> = {<_gnu_cxx::new_allocator> = {}, }, _M_p = 0x1abe8b8 "OpenAL"}}, m_BackgroundInput = true, m_AdapterRumble = {true, true, true, true}, m_AdapterKonga = {false, false, false, false}, m_SYSCONF = 0x1abeec0, static m_Instance = 0x1abfcf0}
init_controllers = false
cpuThreadFunc = 0x6d3a12 Core::CpuThread()
#5 0x00000000006d9cd5 in std::_Bind_simple::_M_invoke<>(std::_Index_tuple<>) (this=0x20cb058) at /usr/include/c++/5.3.0/functional:1531
#6 0x00000000006d9c41 in std::_Bind_simple::operator()() (this=0x20cb058) at /usr/include/c++/5.3.0/functional:1520
#7 0x00000000006d9be0 in std::thread::_Impl >::_M_run() (this=0x20cb040) at /usr/include/c++/5.3.0/thread:115
#8 0x00007fffee100900 in () at /usr/lib64/libstdc++.so.6
#9 0x00007fffeeadb684 in start_thread () at /lib64/libpthread.so.0
#10 0x00007fffef067efd in clone () at /lib64/libc.so.6

Also available in: Atom PDF