Project

General

Profile

Actions

Emulator Issues #8319

closed

Blocking input code on X11

Added by degasus over 9 years ago. Updated almost 6 years ago.

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

0%

Operating system:
Linux
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

Our input code on linux has some blocking X11 calls in the hot path (on the cpu thread). This can waste lots of cpu ressources while eg the GPU is busy.
There should an event loop on an input thread which recieves this kind of data for us.

Example stack trace:
#0 0x00007f8d9b7914ed in poll () from /usr/lib/libc.so.6
#1 0x00007f8d93eff9f2 in ?? () from /usr/lib/libxcb.so.1
#2 0x00007f8d93f012ff in ?? () from /usr/lib/libxcb.so.1
#3 0x00007f8d93f01411 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#4 0x00007f8d9a8687c7 in _XReply () from /usr/lib/libX11.so.6
#5 0x00007f8d9a85e701 in XQueryKeymap () from /usr/lib/libX11.so.6
#6 0x00000000007c7e98 in ciface::Xlib::KeyboardMouse::UpdateInput (this=0x3a3bf90)
at ../Source/Core/InputCommon/ControllerInterface/Xlib/Xlib.cpp:54
#7 0x00000000007c07bd in ControllerInterface::UpdateInput (
this=0x1770fc0 <g_controller_interface>)
at ../Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp:143
#8 0x000000000060961d in SystemTimers::UpdateInputCallback (
userdata=<optimized out>, cyclesLate=1)
at ../Source/Core/Core/HW/SystemTimers.cpp:140

Actions

Also available in: Atom PDF