# [gelöst] Android Studio: AVD-Emulator startet nicht mehr

## sprittwicht

Hallo!

Beim Starten des Emulators in Android Studio bekomme ich folgende Fehlermeldung (Mesa-SW-Renderer per eselect auf "classic"):

```
sh: lspci: Kommando nicht gefunden.

libGL error: unable to load driver: radeonsi_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: radeonsi

sh: lspci: Kommando nicht gefunden.

libGL error: unable to load driver: radeonsi_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: radeonsi

emulator: WARNING: Host CPU is missing the following feature(s) required for x86 emulation: SSSE3

Hardware-accelerated emulation may not work properly!

libGL error: unable to load driver: radeonsi_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: radeonsi

emulator: Listening for console connections on port: 5554

emulator: Serial number of this emulator (for ADB): emulator-5554

```

Stelle ich den SW-Renderer auf "gallium", sieht der Fehler so aus:

```
sh: lspci: Kommando nicht gefunden.

libGL error: unable to load driver: radeonsi_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: radeonsi

libGL error: unable to load driver: swrast_dri.so

libGL error: failed to load driver: swrast

X Error of failed request:  GLXBadContext

  Major opcode of failed request:  154 (GLX)

  Minor opcode of failed request:  6 (X_GLXIsDirect)

  Serial number of failed request:  49

  Current serial number in output stream:  48

sh: lspci: Kommando nicht gefunden.

libGL error: unable to load driver: radeonsi_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: radeonsi

libGL error: unable to load driver: swrast_dri.so

libGL error: failed to load driver: swrast

X Error of failed request:  GLXBadContext

  Major opcode of failed request:  154 (GLX)

  Minor opcode of failed request:  6 (X_GLXIsDirect)

  Serial number of failed request:  49

  Current serial number in output stream:  48

emulator: WARNING: Host CPU is missing the following feature(s) required for x86 emulation: SSSE3

Hardware-accelerated emulation may not work properly!

libGL error: unable to load driver: radeonsi_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: radeonsi

libGL error: unable to load driver: swrast_dri.so

libGL error: failed to load driver: swrast

X Error of failed request:  BadValue (integer parameter out of range for operation)

  Major opcode of failed request:  154 (GLX)

  Minor opcode of failed request:  24 (X_GLXCreateNewContext)

  Value in failed request:  0x0

  Serial number of failed request:  33

  Current serial number in output stream:  34

QObject::~QObject: Timers cannot be stopped from another thread

```

Das lief früher ohne Probleme!

Grafiktreiber habe ich gemäß https://wiki.gentoo.org/wiki/Radeon eingerichtet, es ist eine Sapphire R7 250 Ultimate.

Was mich irritiert ist die Ausgabe von "eselect mesa list":

```
64bit i915 (Intel 915, 945)

64bit i965 (Intel GMA 965, G/Q3x, G/Q4x, HD)

64bit r300 (Radeon R300-R500)

  [1]   gallium *

64bit r600 (Radeon R600-R700, Evergreen, Northern Islands)

  [1]   gallium *

64bit sw (Software renderer)

  [1]   classic *

  [2]   gallium

32bit i915 (Intel 915, 945)

32bit i965 (Intel GMA 965, G/Q3x, G/Q4x, HD)

32bit r300 (Radeon R300-R500)

  [1]   gallium *

32bit r600 (Radeon R600-R700, Evergreen, Northern Islands)

  [1]   gallium *

32bit sw (Software renderer)

  [1]   classic *

  [2]   gallium

```

Da taucht mein Chipsatz (Southern Islands) gar nicht auf, ist das korrekt?

eselect opengl list:

```
Available OpenGL implementations:

  [1]   xorg-x11 *

```

Spontane Ideen?

AMD64 (Phenom II X4 945), gentoo-sources-4.4.26, mesa-12.0.1, android-studio-2.2.0.12.145.3276617-r1.Last edited by sprittwicht on Thu Nov 03, 2016 8:55 am; edited 1 time in total

----------

## firefly

Mit welchen useflags hast du mesa gebaut?

Die R7 250 ist eine GCN GPU und die wird von radeonsi unsterstützt.

----------

## sprittwicht

Die Fehlermeldungen haben mich auf die falsche Fährte gelockt. Das Problem ist, dass der Emulator eigene Bibliotheken mitbringt, deren Abhängigkeiten mein System nicht erfüllt.

Mit der Umgebungsvariable ANDROID_EMULATOR_USE_SYSTEM_LIBS=1 zieht der Emulator die systemweiten Libs an und läuft ohne Probleme.

Scheint ein verbreitetes Problem mit Android Studio zu sein. Obwohl frühere Versionen bei mir noch problemlos liefen, komisch...

Das eigentliche Problem ist damit zwar gelöst, trotzdem verstehe ich die Radeontreiber nicht.

Kompiliert mit VIDEO_CARDS="radeon radeonsi", laut Wiki benötigt man BEIDE.

Hatte früher nur radeonsi, da bot mir eselect mesa nur "sw (Software renderer)" als Treiber.

Jetzt eben auch noch "r300 (Radeon R300-R500)" und "r600 (Radeon R600-R700, Evergreen, Northern Islands)", obwohl die beide nicht für mich sind oder?

Ist es korrekt dass meine R250 vom sw-Treiber angesteuert wird oder sollte es da noch einen geben, in dem "Southern Islands" explizit erwähnt wird?

----------

## firefly

Ich glaube das in die ausgabe von eselect mesa list zu viel hineininterpretiert wird.

AFAIK dient das mesa eselect modul nur dazu um für bestimmte treiber zwischen "classic" oder "gallium" zu wählen.

Da galium schon existierte als die entwicklung von radeonsi startete gibt es nur ein Treiber variante (gallium) und deshalb taucht dies wohl auch nicht in der eselect mesa ausgabe auf.

Und hat jetzt erst mal gar nichts damit zu tun ob 3D-Beschleunigung aktiv ist oder nicht. Da ist die ausgabe von glxinfo (Direct Rendering = Yes) aussagekräftiger

----------

