74 votes

Android Studio, un problème de pilote GPU est apparu soudainement lors de l'exécution de l'émulateur.

J'ai un ordinateur portable que j'utilise principalement pour le développement d'Android sur Android studio, aujourd'hui, tout d'un coup, j'ai eu ce message d'erreur (ou une version périmée de celui-ci) 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. 

J'ai mis à jour le pilote Geforce, mais cela ne sert à rien, j'ai essayé de mettre à jour le pilote Intel, mais cela n'a pas fonctionné, y a-t-il un moyen de désactiver cela ? Une explication sur la raison pour laquelle cela s'est produit tout d'un coup ?

J'utilise également Windows 7 64 bits si cela peut aider, j'ai fait une mise à jour il y a quelques jours.

66voto

Api Points 563

J'utilise Win10 mais j'ai le même problème. L'émulateur a commencé à faire 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. De plus, la fenêtre "GPU driver issue" qui s'affiche n'indique même pas lequel des GPU est à l'origine du problème.

Pour moi, la solution qui a fonctionné est de lancer l'émulateur depuis le terminal, en le forçant à utiliser les graphiques matériels (au lieu de laisser l'émulateur décider du choix) en utilisant la commande

emulator -avd avd_name -gpu mode

mode est hôte pour qu'il fonctionne avec le matériel.

Par exemple :

En utilisant le terminal d'Android Studio, allez dans le dossier où se trouve l'émulateur. Le dossier par défaut sur Win10 est : C:\Users\ nom d'utilisateur \AppData\Local\Android\sdk\emulator

Trouvez l'émulateur à exécuter en listant les émulateurs disponibles : emulator -list-avds

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

Plus d'informations sur ce lien

1 votes

Ça marche comme sur des roulettes, pas besoin de mettre à jour Android Studio pour le canal beta Merci beaucoup ! !! :-)

2 votes

Bonjour Api, je n'ai pas trouvé le dossier emulator dans le sdk. De plus, 'emulator' n'est pas reconnu comme une commande interne ou externe.

0 votes

@vidha comment faites-vous fonctionner votre aps s'il n'y a pas d'émulateur ? utilisez-vous un émulateur tiers ou l'avd d'Android studio ? peut-être devez-vous en installer un via le gestionnaire d'avd ? peut-être le dossier pour Android est-il situé ailleurs dans le répertoire arborescent ?

43voto

Benjamin Points 564

A commentaire dans le sur le rapport de bogue relative à cette question par un employé de Google est éclairante.

Si votre système ne dispose pas d'un GPU discret, nous avons prévu ce changement afin de faire fonctionner l'émulateur de manière plus fiable avec les pilotes GPU Intel. afin de rendre l'émulateur plus fiable sur les pilotes de GPU Intel. À risque, vous pouvez revenir à l'utilisation du GPU Intel en allant à la page de page des paramètres, puis en changeant le moteur de rendu OpenGL ES en "ANGLE (D3D11)", "ANGLE (D3D9)", ou "Desktop native OpenGL".

Il semble que ce message s'affiche 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.

Le site solution est, si possible, d'utiliser un GPU externe pour faire fonctionner 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 moteur de rendu OpenGL ES par défaut dans les paramètres (voir ci-dessous). Les options sont OpenGL, ANGLE et SwiftShader. SwiftShader est une émulation OpenGL ES basée sur le CPU, donc ce paramètre ne fournira pas d'accélération. ANGLE est une émulation OpenGL basée sur Direct3d.

Comme indiqué dans le commentaire, il n'est pas garanti que cela fonctionne. 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 paramètres avec Ctrl-Shift-S puis, en fonction de la version de l'émulateur, allez à Settings -> General -> OpenGL ES renderer ou à Settings -> Advanced -> OpenGL ES renderer

Versions plus récentes de l'émulateur : Settings illustration

Anciennes versions de l'émulateur : Settings illustration

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

Si vous n'avez qu'une Intel HD 4xxx pour exécuter l'émulateur, il est prévu d'utiliser un moteur de rendu de compatibilité. Je suis désolé, mais nous devons être en mesure de passer à des pilotes de GPU Intel mieux supportés, en particulier lors de l'exécution d'images système à haut niveau d'API (25+). Les iGPU Intel de cette génération (et plus anciens) ont de nombreux problèmes avec la compatibilité OpenGL.

Il semble que les pilotes Intel iGPU pour les processeurs Haswell (4e génération) et plus anciens ne prennent pas suffisamment en charge OpenGL pour les appareils Android 7.1+. Ils se rabattent donc délibérément sur l'émulation logicielle qui prend mieux en charge les nouveaux émulateurs Android.

Cela correspond à mon expérience. L'utilisation de l'iGPU d'Intel fonctionne très bien sous Android 7, mais n'est pas fiable sous Android 7.1 et ne fonctionne pas du tout sous Android 8.

Je vous conseille de vous en tenir aux émulateurs Android 7 lorsque vous utilisez l'accélération matérielle pour les iGPU Intel Haswell et plus anciens.

Mise à jour n°2 : Une communication officielle sur cette question a finalement été fournie sous la forme d'observations dans les notes de mise à jour pour l'émulateur 26.1.3 :

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

  • Les anciens iGPU d'Intel ont des problèmes de pilote à la fois 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 des images de niveau API 25 en raison d'un bogue dans lequel "Pixel Launcher s'arrête constamment". Il semble s'agir d'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 recommandons d'utiliser un GPU discret NVIDIA ou AMD, ou un GPU Intel plus récent (Iris, HD 5xxx, HD 5xx/6xx).

3 votes

C'est une belle capture d'écran mais où trouvez-vous exactement ce paramètre ? Je ne le trouve nulle part dans les paramètres.

0 votes

@DavidElner J'ai mis à jour la capture d'écran et fourni plus de détails sur la façon d'accéder aux paramètres. Assurez-vous que vous êtes dans l'onglet Général des Paramètres, plutôt que dans l'onglet Proxy.

0 votes

Vous êtes l'homme ! Le passage à "Desktop native OpenGL" dans cette page et "Hardware GLES 2.0" dans la configuration de l'AVD n'a pas seulement résolu ce problème, il a permis une performance incroyablement fluide dans l'émulateur. Il fonctionne aussi bien que dans le vrai téléphone (ou même mieux) ! !! Merci !

6voto

Lee Points 85

J'ai rencontré ce problème aujourd'hui. Suivant la suggestion du Google emulator issue tracker, j'ai installé l'émulateur beta 26.1.3. Problème résolu.

1 votes

Pour ceux qui se demandent comment accéder au canal bêta, consultez ce lien tools.Android.com/preview-channel

3voto

AlfaSpider Points 116

Comme d'autres l'ont suggéré, allez dans Paramètres -> Apparence et comportement -> Paramètres système -> Mises à jour. Remplacez "Vérifier automatiquement les mises à jour pour" par "Canal bêta". Mettez à jour l'émulateur avec la dernière version bêta. Le problème de pilote devrait disparaître. J'ai eu des problèmes pour faire fonctionner fragment avec google maps (app chrash) qui ont été résolus après la mise à jour de l'émulateur vers la dernière bêta.

2voto

CVD Points 21

J'ai fait la même chose que @Api, mais je l'ai fait à partir du Gestionnaire de périphériques virtuels. Dans la fenêtre d'édition du périphérique, dans la liste déroulante Graphique, j'ai sélectionné "Matériel - GLES 2.0". Je crois que la valeur par défaut est Automatique. J'obtiens toujours la fenêtre popup du pilote GPU erroné, mais l'émulateur ne plante plus. Il a retrouvé une fiabilité normale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X