Daemon icon indicating copy to clipboard operation
Daemon copied to clipboard

Survive to hardware input issue

Open illwieckz opened this issue 6 months ago • 2 comments

I don't know if we can do something on our side, but the USB keyboard I was using to test the engine on some ARM board disconnected its USB plug and the game crashed because of that, also printing some X11 errors:

Built 18 glsl shader programs in 25 ms (compile: 29 in 2 ms, link: 18 in 15 ms, init: 50 in 2 ms; cache: loaded 0 in 0 ms, saved 18 in 4 ms) 
Player#3935395 entered the game 
]X Error of failed request:  XI_BadDevice (invalid Device parameter)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  48 ()
  Device id in failed request: 0x6
  Serial number of failed request:  12358
  Current serial number in output stream:  12358

At the same time Xorg printed this:

(EE) client bug: Invalid path /dev/input/event7
[dix] couldn't enable device 6
(EE) client bug: Invalid path /dev/input/event5
(EE) client bug: Invalid path /dev/input/event6

I wonder if we can make a way for the engine to survive this, so when such error happens the game continues and when the player re-plugs the keyboard the game is usable again.

Priority for this is low, but I wanted to document this.

illwieckz avatar Sep 03 '25 12:09 illwieckz

This may be something to fix in SDL anyway.

illwieckz avatar Sep 03 '25 12:09 illwieckz

Yeah that's probably not us. With the SDL API you rarely deal with raw pointers or any such thing where you can easily crash. A stack trace would be good for certainty.

slipher avatar Sep 03 '25 18:09 slipher