[FIX] todo qemu: name a GPU mode the emulator still accepts

Reported from a workstation: "Selected GPU option 'swiftshader_indirect' is
not valid, switching to auto", then "Your GPU drivers may have a bug". That
mode no longer exists in emulator 37.1; it fell back to swangle by itself, so
it worked while printing two errors that read like a fault. emulator -help-gpu
lists exactly four modes: auto, host, swiftshader, swangle. The AVD now asks
for swangle. Checked on the VM: zero GPU errors where there were two,
vulkan:swiftshader gles:swangle selected outright, boot in 55 s.

--- FR ---

Remonté depuis un poste : « Selected GPU option 'swiftshader_indirect' is not
valid, switching to auto », puis « Your GPU drivers may have a bug ». Ce mode
n'existe plus dans l'émulateur 37.1 ; il retombait de lui-même sur swangle,
donc cela fonctionnait en affichant deux erreurs qui se lisent comme une panne.
« emulator -help-gpu » énumère exactement quatre modes : auto, host,
swiftshader, swangle. L'AVD demande désormais swangle. Vérifié sur la VM : zéro
erreur GPU là où il y en avait deux, vulkan:swiftshader gles:swangle choisis
d'emblée, boot en 55 s.

Assisted-by: Claude Opus 5
This commit is contained in:
Mathieu Benoit 2026-08-19 02:03:42 -04:00
parent ef57e1a097
commit 1dcd19b02f
2 changed files with 17 additions and 6 deletions

View file

@ -5897,10 +5897,18 @@ class TODO:
L'image système suit la plateforme du projet, et redescend si elle n'est
pas publiée — Google ne fournit pas d'image pour toutes les API.
Le rendu est réglé sur swiftshader_indirect, DANS la configuration de
l'AVD plutôt qu'en option de lancement : par « ssh -X » il n'y a pas de
GLX direct, et l'émulateur s'ouvrirait sur un écran noir. Ainsi
« emulator -avd erplibre » suffit, sans rien à retenir.
Le rendu est réglé en logiciel DANS la configuration de l'AVD plutôt
qu'en option de lancement : par « ssh -X » il n'y a pas de GLX direct, et
l'émulateur s'ouvrirait sur un écran noir. Ainsi « emulator -avd
erplibre » suffit, sans rien à retenir.
Le mode est « swangle » — ANGLE sur SwiftShader — et non
« swiftshader_indirect », qui n'existe PLUS : l'émulateur 37.1 répond
« Selected GPU option 'swiftshader_indirect' is not valid, switching to
auto », puis « Your GPU drivers may have a bug », avant de retomber de
lui-même sur swangle. Il fonctionnait, en affichant deux erreurs qui
laissaient croire à une panne. Les modes valides sont exactement quatre,
que « emulator -help-gpu » énumère : auto, host, swiftshader, swangle.
"""
return (
f'echo " == {t("Android emulator (AVD)")} =="; '
@ -5946,7 +5954,7 @@ class TODO:
# 0,62 Mpixel — 4,2 fois moins. Android gère la densité et
# l'application ne s'en aperçoit pas ; qui veut la taille
# réelle l'écrase au lancement par « -skin 1080x2400 ».
'printf "hw.gpu.enabled=yes\\nhw.gpu.mode=swiftshader_indirect\\nhw.lcd.width=540\\nhw.lcd.height=1140\\nhw.lcd.density=240\\n" '
'printf "hw.gpu.enabled=yes\\nhw.gpu.mode=swangle\\nhw.lcd.width=540\\nhw.lcd.height=1140\\nhw.lcd.density=240\\n" '
">> $HOME/.android/avd/erplibre.avd/config.ini' && "
f'echo " ✅ {t("AVD ready:")} '
"$(cat $HOME/.erplibre-avd-device) / "

View file

@ -407,8 +407,11 @@ class TestAndroidEmulator(unittest.TestCase):
"""Par « ssh -X » il n'y a pas de GLX direct : en « auto »,
l'émulateur s'ouvre sur un écran noir. Le réglage va dans config.ini
pour qu'« emulator -avd erplibre » suffise."""
self.assertIn("hw.gpu.mode=swiftshader_indirect", self.cmd)
self.assertIn("hw.gpu.mode=swangle", self.cmd)
self.assertIn("config.ini", self.cmd)
# « swiftshader_indirect » n'existe plus : l'émulateur 37.1 le refuse,
# affiche deux erreurs et retombe sur swangle de lui-même. Mesuré.
self.assertNotIn("swiftshader_indirect", self.cmd)
def test_xauth_is_installed(self):
"""Sans xauth dans la VM, « ssh -X » n'ouvre aucun affichage — et le