Hi,
A while ago I have noticed that while I have my 360 Wireless receiver installed (whether it is in use, or plugged in at all does not matter) SFML produces extremely low performance, and it completely hangs while the mouse is being moved, or keyboard input is being received.
Laurent helped me out with:
Can you try to comment line 121 of src/SFML/Window/WindowImpl.cpp (ProcessJoystickEvents() and recompile SFML?
This completely fixed the issue, I can live with the gamepad not being usable with SFML for the time being.
Recently however, I have started using MS AppVerifier, mostly to help debug issues with multiple threads, but it also stops my program when the above line is commented out in the source, producing this log:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<avrf:logfile xmlns:avrf="Application Verifier">
<avrf:logSession TimeStarted="2012-08-03 : 17:33:15" PID="8424" Version="2">
<avrf:logEntry Time="2012-08-03 : 17:33:17" LayerName="Handles" StopCode="0x303" Severity="Error">
<avrf:message>NULL handle passed as parameter. A valid handle must be used.</avrf:message>
<avrf:parameter1>0 - Not used.</avrf:parameter1>
<avrf:parameter2>0 - Not used.</avrf:parameter2>
<avrf:parameter3>0 - Not used.</avrf:parameter3>
<avrf:parameter4>0 - Not used.</avrf:parameter4>
<avrf:stackTrace>
<avrf:trace>vfbasics!AVrfpHandleSanityChecks+29 (d:\avrf\source\base\avrf\vrfcommon\handle.c @ 178)</avrf:trace>
<avrf:trace>vfbasics!AVrfpNtClearEvent+1f (d:\avrf\source\base\avrf\vrfcommon\handle.c @ 418)</avrf:trace>
<avrf:trace>KERNELBASE!ResetEvent+e ( @ 0)</avrf:trace>
<avrf:trace>DINPUT!+40f095a3 ( @ 0)</avrf:trace>
<avrf:trace>DINPUT!+40f07c37 ( @ 0)</avrf:trace>
<avrf:trace>DINPUT!+40f0b23b ( @ 0)</avrf:trace>
<avrf:trace>DINPUT!+40f05ab7 ( @ 0)</avrf:trace>
<avrf:trace>WINMM!joyConfigChanged+638 ( @ 0)</avrf:trace>
<avrf:trace>WINMM!joyGetPosEx+50 ( @ 0)</avrf:trace>
<avrf:trace>sfml-window-d-2!sf::priv::JoystickImpl::isConnected+ad (e:\myfiles\downloads\laurentgomila-sfml-2.0-rc-68-ga0c1f5f\laurentgomila-sfml-a0c1f5f\src\sfml\window\win32\joystickimpl.cpp @ 66)</avrf:trace>
<avrf:trace>sfml-window-d-2!sf::priv::JoystickManager::update+e2 (e:\myfiles\downloads\laurentgomila-sfml-2.0-rc-68-ga0c1f5f\laurentgomila-sfml-a0c1f5f\src\sfml\window\joystickmanager.cpp @ 80)</avrf:trace>
<avrf:trace>sfml-window-d-2!sf::priv::WindowImpl::processJoystickEvents+38 (e:\myfiles\downloads\laurentgomila-sfml-2.0-rc-68-ga0c1f5f\laurentgomila-sfml-a0c1f5f\src\sfml\window\windowimpl.cpp @ 150)</avrf:trace>
<avrf:trace>sfml-window-d-2!sf::priv::WindowImpl::popEvent+45 (e:\myfiles\downloads\laurentgomila-sfml-2.0-rc-68-ga0c1f5f\laurentgomila-sfml-a0c1f5f\src\sfml\window\windowimpl.cpp @ 106)</avrf:trace>
<avrf:trace>sfml-window-d-2!sf::Window::pollEvent+28 (e:\myfiles\downloads\laurentgomila-sfml-2.0-rc-68-ga0c1f5f\laurentgomila-sfml-a0c1f5f\src\sfml\window\window.cpp @ 183)</avrf:trace>
<avrf:trace>BlackBookEngine!main+1d0 (e:\myfiles\dropbox\!programming\blackbookengine\blackbookengine\black book engine\main.cpp @ 121)</avrf:trace>
<avrf:trace>BlackBookEngine!__tmainCRTStartup+1bf (f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 555)</avrf:trace>
<avrf:trace>BlackBookEngine!mainCRTStartup+f (f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c @ 371)</avrf:trace>
<avrf:trace>kernel32!BaseThreadInitThunk+12 ( @ 0)</avrf:trace>
<avrf:trace>ntdll!RtlInitializeExceptionChain+63 ( @ 0)</avrf:trace>
<avrf:trace>ntdll!RtlInitializeExceptionChain+36 ( @ 0)</avrf:trace>
</avrf:stackTrace>
</avrf:logEntry>
</avrf:logSession>
</avrf:logfile>
I am wondering what would be the correct way to remove processing joystick input, and also if there is any progress on possibly fixing whatever is causing the performance problems with certain joysticks/gamepads.
Thanks in advance!