Open orbea opened 5 years ago
@Themaister Any chance you would be willing to look at this?
Here is the example from mpv which I am informed is not the best example as it does set and unset master properly and doesn't call ioctl(tty_fd, KDSETMODE, KD_GRAPHICS).
I was suggested to look at wlroots for a better example.
https://github.com/swaywm/wlroots/tree/master/backend/session
And here is some more documentation.
I'm not sure how much implementing VT switching in RetroArch would help in these cases?
alt+Sysrq+REISUB is always a option to reboot without danger of filesystem corruption fortunately (if you wait a bit between the stages to let it kill all processes and sync by paying attention to the disk write LED).
@twinaphex @jdgleaver could you please add this in. If i get locked in one more time requiring a reboot because i don't remember how to kill retroarch in KMS, it will be very frustrating.
PRs welcome.
Description
When using KMS with RetroArch the user can not VT switch until RetroArch closes. This is especially problematic if the user's input is broken, RetroArch freezes or gets otherwise stuck where the user has to resort to ssh if available.
There are also cases where RetroArch does not close properly and the terminal becomes non-responsive and VT switch still does not work. I'm not sure how much implementing VT switching in RetroArch would help in these cases?
Another program with a similar use case which has implemented VT switching is mpv.
https://github.com/mpv-player/mpv
Note there are kernel related issues this will expose, but the harm of that is less than getting locked in a non-responsive retroarch instance. See https://github.com/mpv-player/mpv/issues/6184.
Expected behavior
The user should be able to VT switch to another tty.
Actual behavior
The user can not VT switch while RetroArch is running with a KMS context.
Steps to reproduce the bug
ctrl + alt + F1 - F6
.Bisect Results
N/A
Version/Commit
You can find this information under Information/System Information
Environment information
Slackware64-current
gcc-8.2.0