Lorsque certains SDL programmes fondés sur (par exemple prboom , DOSBox ) sont exécutés à partir de la console (pas X) et se terminent brusquement pour une raison quelconque (par exemple , tués ou segfaults), l'écran se bloque; Il devient noir et reste noir jusqu'à ce que vous redémarriez.
Cela contraste avec les démos hello_video et hello_triangle qui ramènent la console à son état d'origine même si elles sont interrompues brutalement.
Que se passe-t-il exactement ici et existe-t-il un moyen de le récupérer sans redémarrer?
J'ai observé cela dans Debian Squeeze . Je ne sais pas si d'autres OS sont affectés.
Edit : je dois préciser que la console (sortie HDMI / RCA, clavier USB) est affectée, pas les connexions ssh (qui continuent de bien fonctionner).
alt+F1-5
?Réponses:
Il s'agit presque certainement d'un bogue dans le pilote graphique. Il semble que SDL initialise l'API graphique, auquel moment le pilote graphique prend le relais de l'affichage. Parce que vous avez tué SDL, il n'a jamais exécuté le code pour désinitialiser l'API graphique, et il attend donc simplement des commandes graphiques qui ne viendront jamais.
Cela indique une API graphique mal conçue, mais comme tout est propriétaire, il n'y a aucun moyen de le savoir et aucun moyen de le réparer.
(J'ai observé un comportement similaire sur un PC où SDL "attrape" le pointeur de la souris et ne le désengage pas s'il se bloque ou est tué, mais jamais avec l'affichage.)
la source
SIGKILL
à l'une des démos GLES2 et voir ce qui se passe.Je sais que c'est une très vieille question, mais je rencontrais un problème similaire à celui-ci lors de l'exécution de Mupen64Plus via EmulationStation. Ma console apparaîtrait bien, mais le clavier ne répondrait absolument pas jusqu'à ce que j'effectue un redémarrage.
Le problème était que le clavier restait en mode RAW après la fin du programme. La solution est d'ajouter la ligne suivante à la fin du script shell qui a couru:
kbd_mode -a
. Cela réinitialise le clavier en mode XLATE et lui permet de fonctionner à nouveau.Bien que cela ne résout pas la partie "écran noir" du problème, je suppose qu'il doit y avoir un moyen analogue de réinitialiser le tampon de la console pour récupérer la vidéo.
la source
Je ne peux pas dire quel est le problème avec l'application SDL, mais en tapant simplement:
devrait rendre la console réutilisable
la source