Android Studio, subit soudainement un problème de pilote GPU lors de l’exécution d’un émulateur

J’ai un ordinateur portable que j’utilise principalement pour le développement d’Android sur Android Studio. Aujourd’hui, tout à coup, j’ai reçu ce message d’erreur (ou une version obsolète) lorsque j’ai lancé mon émulateur.

Your GPU driver information: GPU #1 Make: 8086 Model: Intel(R) HD Graphics Family Device ID: 0a16 Driver version: 10.18.10.3945 GPU #2 Make: 10de Model: NVIDIA GeForce 820M Device ID: 1140 Driver version: 22.21.13.8476 Some users have experienced emulator stability issues with this driver version. As a result, were selecting a compatibility renderer. Please check with your manufacturer to see if there is an updated driver available. 

Mis à jour le pilote geforce, mais pas d’utilisation, a essayé de mettre à jour le pilote Intel mais a échoué, existe-t-il un moyen de le désactiver? contourner le moteur de rendu de compatibilité et travailler comme avant, l’émulateur est maintenant terrible. Une explication pourquoi cela s’est produit tout d’un coup?

Aussi, j’utilise Windows 7 64 bits si cela peut aider avec quelque chose, a eu une mise à jour il y a quelques jours.

J’utilise Win10 mais j’ai le même problème. L’émulateur a commencé à planter mon application après la dernière mise à jour de l’émulateur. Dans mon cas, le problème est que l’émulateur ne fonctionne pas sur le matériel même si je n’ai jamais eu de problème avec mes GPU. En outre, la fenêtre «Problème de pilote GPU» qui apparaît ne mentionne même pas le problème auquel l’un des GPU est le plus susceptible.

Pour moi, la solution a consisté à exécuter un émulateur depuis un terminal, le forçant à utiliser des graphiques matériels (au lieu de laisser l’émulateur décider lequel) en utilisant la commande

 emulator -avd avd_name -gpu mode 

mode est hôte afin qu’il fonctionne avec le matériel.

Par exemple:

À l’aide du terminal Android Studio, déplacez-vous vers le dossier où se trouve l’émulateur. La valeur par défaut sous Win10 est: C: \ Users \ Nom d’ utilisateur \ AppData \ Local \ Android \ sdk \ emulator

Trouver l’émulateur à exécuter en listant les emulator -list-avds disponibles: emulator -list-avds

Exécuter l’émulateur avec l’option hôte -gpu : emulator -avd avd_name -gpu host

Plus d’infos sur ce lien

Un commentaire dans le rapport de bogue relatif à ce problème par un employé de Google est éclairant.

Si votre système ne possède pas de processeur graphique discret, nous avons prévu ce changement afin de rendre l’émulateur plus fiable sur les pilotes Intel. À vos risques et périls, vous pouvez revenir à l’utilisation du processeur graphique Intel en accédant à la page des parameters, puis en modifiant le rendu OpenGL ES pour “ANGLE (D3D11)”, “ANGLE (D3D9)” ou “OpenGL natif”.

Il semble que ce message est affiché pour tous les systèmes utilisant des GPU Intel, et pas seulement pour les systèmes exécutant des versions spécifiques d’un pilote graphique.

La solution consiste, si possible, à utiliser un GPU externe pour exécuter l’émulateur.

Si un GPU Intel est le seul GPU disponible sur le système, il est possible de réactiver le rendu accéléré d’OpenGL ES, en remplaçant le rendu OpenGL ES par défaut dans les parameters (voir ci-dessous). Les options sont OpenGL, ANGLE et SwiftShader. SwiftShader est une émulation OpenGL ES basée sur le processeur, ce paramètre ne permet donc pas une accélération. ANGLE est une émulation OpenGL basée sur Direct3d.

Selon le commentaire, cela ne garantit pas le fonctionnement, en effet, je suis capable de réactiver l’accélération matérielle pour les émulateurs Android 7, mais avec l’accélération matérielle activée, tout ce que je reçois est un écran noir pour les émulateurs Android 8.

Ouvrez les parameters avec Ctrl-Shift-S puis Settings -> General -> OpenGL ES renderer Illustration des paramètres

Mise à jour n ° 1: Un autre commentaire sur le rapport de bogue fournit un éclairage supplémentaire sur ce problème:

Si vous avez juste un Intel HD 4xxx exécutant l’émulateur, il est prévu qu’un moteur de rendu de compatibilité soit utilisé. Je suis désolé pour cela, mais nous devons être en mesure de passer à des pilotes de processeur graphique Intel mieux pris en charge, en particulier lorsque vous exécutez des niveaux API élevés (25+) d’images système. Les iGPU Intel de cette génération (et plus anciens) rencontrent de nombreux problèmes de compatibilité avec OpenGL.

Il semble que les pilotes Intel iGPU pour processeurs Haswell (4e génération) et antérieurs ne prennent pas suffisamment en charge OpenGL pour les appareils Android 7.1+. Ils recourent donc délibérément à l’émulation logicielle qui supporte mieux les nouveaux émulateurs Android.

Cela correspond à mon expérience. Utiliser Intel iGPU fonctionne parfaitement sur Android 7, mais il est flou sur Android 7.1 et ne fonctionne pas du tout sur Android 8.

Ma suggestion, restr avec les émulateurs Android 7 lors de l’utilisation de l’accélération matérielle pour Intel Haswell et les anciens iGPU.

Mise à jour n ° 2: La communication officielle sur ce problème a finalement été fournie sous la forme de commentaires dans les notes de publication pour Emulator 26.1.3:

Les GPU qui seront utilisés pour utiliser le rendu ANGLE ou Swiftshader sont déterminés comme suit:

  • Les Intel iGPU plus anciens ont des problèmes de pilotes sur les pilotes OpenGL et ANGLE D3D. Les utilisateurs avec Intel HD Graphics 3xxx et plus anciens utiliseront Swiftshader.
  • Certains utilisateurs ont signalé l’impossibilité d’utiliser les images de niveau 25 de l’API à cause d’un bogue dans lequel «Pixel Launcher ne cesse de s’arrêter». Cela semble être un problème de pilote dans certains modèles Intel HD 4xxx. Ils seront donc basculés pour utiliser ANGLE automatiquement.

Pour de meilleurs résultats avec l’émulation GPU, nous vous recommandons d’utiliser un GPU NVIDIA ou AMD discret ou un GPU Intel plus récent (Iris, HD 5xxx, HD 5xx / 6xx).

J’ai rencontré ce problème aujourd’hui. Selon la suggestion de Google Tracker émulateur, j’ai installé l’émulateur bêta 26.1.3. Problème résolu

J’ai fait la même chose que @Api, mais je l’ai fait depuis Virtual Device Manager. Dans la fenêtre d’édition du périphérique, dans la liste déroulante Graphiques, j’ai sélectionné “Matériel – GLES 2.0”. Je crois que la valeur par défaut est Automatique. J’ai toujours la fenêtre contextuelle erronée du pilote GPU, mais l’émulateur ne plante plus. Il est de retour à la fiabilité normale.

Comme suggéré, allez dans Paramètres -> Apparence et comportement -> Paramètres système -> Mises à jour. Changer “Vérifier automatiquement les mises à jour pour” à “Canal bêta”. Mettre à jour l’émulateur vers la dernière version bêta. Le problème du pilote doit être résolu. J’ai eu des problèmes pour exécuter fragment avec google maps (app chrash) qui a été résolu après la mise à jour de l’émulateur à la dernière version bêta.

Pour les utilisateurs Linux, accédez à Android Folder qui, dans mon cas, est sous ~ / Android. Puis passez à / sdk / emulator. “émulateur” est une commande locale. Vous pouvez donc exécuter la commande en tant que “./emulator” local.

Le rest est fait comme l’utilisateur “Api” a déclaré.

$ ./emulator -avd -avd_name -gpu mode

$ ./emulator -avd Nexus_5X_API_26 -gpu host (#IN MON CAS)

Note: je n’ai pas téléchargé le SDK, mais je l’ai copié et collé sous / home dir. C’est pourquoi la commande n’était pas valide à l’échelle mondiale. Si vous configurez sdk avd à partir de la base, cela devrait fonctionner correctement.

J’ai exactement le même problème depuis 4 jours. J’ai essayé les deux réponses ci-dessus, mais rien ne fonctionne. PS L’émulateur fonctionne, mais se bloque apparemment au hasard. Avant cette erreur, l’émulateur marchait bien et je pouvais tester certaines fonctionnalités, je peux aussi déboguer complètement sans crash via USB avec quelques appareils Android donc je suis presque certain que c’est un problème avec l’émulateur.

Edit: Vous ne savez pas exactement quel était le problème, mais cela a été résolu en forçant Android Studio à fonctionner avec le GPU nVidia.

J’ai réussi à résoudre ce problème en désactivant l’utilisation du GPU pour que l’AVD utilise l’accélération logicielle. Ce ne sera pas aussi rapide que GPU, mais au moins, il a de meilleures chances de fonctionner correctement.

J’ai essayé d’autres options ci-dessus mais malheureusement aucun d’entre eux ne fonctionnait.

Si vous souhaitez essayer cette option, accédez au gestionnaire AVD (dans Android Studio: Outils -> Android -> Gestionnaire AVD), puis modifiez votre périphérique virtuel et, dans le champ Graphiques, vous pouvez définir “Logiciel – GLES 1.1” à la place. “Matériel – GLES 2.0”.

Ce n’est pas la solution idéale pour ce problème, mais cela peut aider.

rien de tout cela a fonctionné pour moi sur mon ordinateur portable Windows avec Intel HD4000

ce qui a fonctionné est Ubuntu Linux après que j’exécute l’émulateur sur Linux j’ai été choqué de sa vitesse 🙂

il semble donc que le problème avec Intel et Windows ne sera pas résolu bientôt