-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RGUI/input goes into endless loop when issuing load #595
Comments
Doesn't happen here (with udev). Could you try logging what menu_input() in that branch returns when you let go of the controller? There could be some stale state lingering causing some bind to trigger every frame. |
Sorry, this took a bit longer. With these debug changes (https://github.com/tobiasjakobi/RetroArch-lima/tree/inputdebug) applied, I get repeated output of: The return value is constant. |
OK, so 36028797018963968 = (1ULL << RARCH_MENU_TOGGLE). Which means that input_key_pressed_func(RARCH_MENU_TOGGLE) is always true in menu_input(void). EDIT: So, this looks like an issue with the network command interface. Like I said, I have only a gamepad attached to the device. The rest of the "communication" is done via the network command interface. Opening RGUI is always done via sending "MENU_TOGGLE" to the network socket. |
OK, that makes kinda sense. The state clearing for the stuff that gets set by the network interface (and also stdin interface) is done in rarch_cmd_pre_frame. But rarch_cmd_pre_frame isn't called anymore after retroarch goes into this menu loop. This is the first output I get: So the network interface never gets a chance to clear the state. |
Should be fixed now. |
Hi,
I'm doing the following. Start emulator core with preset game. Then open RGUI, select new content and load. When triggering load (I control RGUI via gamepad, which is also the only input device attached to the system) the frontend freezes, or so it seems.
In reality it doesn't freeze, but seems to hang in an endless loop. Attaching gdb reveals:
0 0xb69f4d7c in poll () from /lib/libc.so.6
#1 0x0005c758 in poll (__timeout=0, __nfds=1, __fds=0xbee0da18) at /usr/include/bits/poll2.h:46
#2 hotplug_available (udev=0x185c878) at input/udev_input.c:283
#3 udev_input_poll (data=0x185c878) at input/udev_input.c:415
#4 0x000125e0 in rarch_input_poll () at retroarch.c:595
#5 0x0000ecc0 in main_entry_iterate (argc=argc@entry=5, argv=argv@entry=0xbee0e094, args=args@entry=0x0) at frontend/frontend.c:187
#6 0x0000ea44 in main (argc=5, argv=0xbee0e094) at frontend/frontend.c:393
Depending on when one stops the process to investigate the bt can look different, but it's always in main_entry_iterate.
Both input and joypad input driver are udev.
I tracked the issue down to this commit:
9d6a0af
When commenting out the lines the patch introduces, then the issue disappears and the new content is loaded properly.
Regards,
Tobias
The text was updated successfully, but these errors were encountered: