nickguletskii / GLXOSD

GLXOSD is an extensible on-screen display (OSD)/overlay for OpenGL applications running on Linux with X11 which aims to provide similar functionality to MSI Afterburner/RivaTuner OSD. It can show FPS, frame timings, temperatures and more in OpenGL games and applications. It can also be used to benchmark games, much like voglperf.
https://glxosd.nickguletskii.com
MIT License
123 stars 20 forks source link

GLXOSD will freeze game if I press a Shortcut key on my Roccat Kova[+] #88

Open ghost opened 7 years ago

ghost commented 7 years ago

Yeah, sounds pretty far fetched but that is literally what happens.

Example/Steps to reproduce:

Run Dead Island Definitive Edition running with GLXOSD while having the Roccat Tools for Linux installed. Set a shortcut key to the mouse then attempt to use it in-game.

I have the right-back thumb button on the Kova[+] set as a shortcut to the F key. If I push it or any of the other thumb button shortcuts, the game will freeze and I'll have to kill it.

The freeze doesn't happen and everything works as expected if I'm not using GLXOSD.

I'm using Ubuntu MATE 16.04.1, GLXOSD was installed from the PPA, the Roccat Tools were also installed from their own PPA. Everything is up-to-date at the time of writing.

CPU: AMD FX8370E 4.2GHz RAM: 16GB GPU: Gigabyte GeForce GTX 1080 G1 Driver: Proprietary 367.36.02

ghost commented 7 years ago

A bit of extra info:

Roccat Tools use the roccateventhandler as the input handler for shortcut keys. Maybe blacklisting that in GLXOSD's input listening bit would help?

nickguletskii commented 7 years ago

Unfortunately, since I don't have any Roccat equipment, it will be hard for me to fix this bug as I won't be able to test the fix. Could you please provide the output of xev when pressing these buttons?

ghost commented 7 years ago

Here you go, I included all of the offending ones:

KeyPress event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35639562, (55,38), root:(93,684),
    state 0x10, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XmbLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35639655, (55,38), root:(93,684),
    state 0x10, keycode 26 (keysym 0x65, e), same_screen YES,
    XLookupString gives 1 bytes: (65) "e"
    XFilterEvent returns: False

KeyPress event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35640150, (55,38), root:(93,684),
    state 0x10, keycode 41 (keysym 0x66, f), same_screen YES,
    XLookupString gives 1 bytes: (66) "f"
    XmbLookupString gives 1 bytes: (66) "f"
    XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35640264, (55,38), root:(93,684),
    state 0x10, keycode 41 (keysym 0x66, f), same_screen YES,
    XLookupString gives 1 bytes: (66) "f"
    XFilterEvent returns: False

KeyPress event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35641109, (55,38), root:(93,684),
    state 0x10, keycode 27 (keysym 0x72, r), same_screen YES,
    XLookupString gives 1 bytes: (72) "r"
    XmbLookupString gives 1 bytes: (72) "r"
    XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35641310, (55,38), root:(93,684),
    state 0x10, keycode 27 (keysym 0x72, r), same_screen YES,
    XLookupString gives 1 bytes: (72) "r"
    XFilterEvent returns: False

KeyPress event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35642015, (55,38), root:(93,684),
    state 0x10, keycode 24 (keysym 0x71, q), same_screen YES,
    XLookupString gives 1 bytes: (71) "q"
    XmbLookupString gives 1 bytes: (71) "q"
    XFilterEvent returns: False

KeyRelease event, serial 39, synthetic NO, window 0x4400001,
    root 0x1e7, subw 0x4400002, time 35642196, (55,38), root:(93,684),
    state 0x10, keycode 24 (keysym 0x71, q), same_screen YES,
    XLookupString gives 1 bytes: (71) "q"
    XFilterEvent returns: False