Jump to content

Probleme Mali GPU und OpenGL Treiber


Recommended Posts

So. Nach dem ich mir zur Zeit einen Wolf probiere mal die Frage an unsere Linux Spezis.

 

Das erste mal den OpenGL Treiber für die Mali GPU installieren und testen funtionierte einwandfrei.

 

* git clone https://github.com/linux-sunxi/sunxi-mali.git
* cd sunxi-mali
* git submodule init
* git submodule update
* sudo make install

* # move the lima drivers out of the search path:
* sudo mkdir /usr/lib/arm-linux-gnueabihf/bak
* sudo mv /usr/lib/arm-linux-gnueabihf/libGLES* /usr/lib/arm-linux-gnueabihf/bak
* sudo mv /usr/lib/arm-linux-gnueabihf/libEGL* /usr/lib/arm-linux-gnueabihf/bak

Am nächsten Tag ging OpenGL nicht mehr.

Ha versucht es erneut zu aktivieren nach Anleitung mit dem Ergebnis das es nicht funktionierte.

Es kommt immer der Fehler error eglinitialize() failed.

Die Emulaition bekomme ich wieder zum Laufen wenn ich die gesicherten Dateien in das Verzeichniss zurück schreibe.

Dann läuft aber eben wieder die Software OpenGL Emulation. Also der Software Render.

 

Das kann man testen mit es2_info und die Performance mit es2gears.

 

Kannst du mir vielleicht weiterhelfen photron.

Ganz lieb guck. ::)

Link zu diesem Kommentar
Share on other sites

Also kurze Bestandsaufnahme: Ich habe hier RED Brick (frisches 1.7er Image) mit HDMI Display und USB WLAN Stick und verbinde mich über SSH.

 

Da ich mich über SSH verbinde muss ich erstmal DISPLAY=:0 setzen damit die Programm auch den X Server finden:

 

export DISPLAY=:0

 

Dann installiere ich mesa-utils und mesa-utils-extra und teste mittels glxinfo, glxgears, es2_info und es2gears.

 

tf@red-brick:~$ glxinfo
name of display: :0
libGL error: MESA-LOADER: malformed or no PCI ID
libGL error: unable to load driver: mali_drm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: mali_drm
...
OpenGL renderer string: Software Rasterizer

 

Interessant hier ist, dass glxinfo sich beschwert mali_drm nicht laden zu können, obwohl mali_drm geladen ist:

 

tf@red-brick:~$ lsmod
Module                  Size  Used by
disp_ump                 838  0 
mali_drm                2622  1 
drm                   215517  2 mali_drm
8188eu                506931  0 
g_red_brick            37229  3 
red_brick_uid           1618  1 g_red_brick
mali                  110636  0 
ump                    34163  4 mali,disp_ump

 

es2_info beschwert sich lima nicht laden zu können:

 

tf@red-brick:~$ es2_info
libEGL warning: DRI2: failed to open lima (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
...
GL_RENDERER: Software Rasterizer

 

glxgears beschwert sich genauso wie glxinfo und schaft um die 33 FPS mit dem Software Rasterizer:

 

tf@red-brick:~$ glxgears
libGL error: MESA-LOADER: malformed or no PCI ID
libGL error: unable to load driver: mali_drm_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: mali_drm
166 frames in 5.0 seconds = 33.013 FPS

 

es2gears beschwert sich genauso wie es2_info und schaft um die 16 FPS mit dem Software Rasterizer:

 

tf@red-brick:~$ es2gears
libEGL warning: DRI2: failed to open lima (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
EGL_VERSION = 1.4 (DRI2)
vertex shader info: 
fragment shader info: 
info: 
81 frames in 5.0 seconds = 16.152 FPS

 

Der sunxi-mali Treiber ist im Image eigentlich schon installiert. Warum OpenGL dennoch nicht richtig funktioniert ist mir nicht klar. Muss ich mir im Detail ansehen.

Link zu diesem Kommentar
Share on other sites

Okay, ich denke ich habe das Problem gefunden.

 

Das sunxi-mali Makefile installiert den Treiber ins falsche Verzeichnis. Zumindest muss es auf dem RED Brick in ein anderes Verzeichnis damit es2gears es benutzt.

 

Ich habe vier Debian Packages angehängt. Installier die mal bitte alle mittels "sudo dpkg -i <package-file>" auf dem RED Brick (Reihenfolge ist egal). Danach sollte es2gears deutlich schneller laufen. Teste das dann auch mal bitte mit deinem richtigen OpenGL Programm, nicht das ich da jetzt bloß es2gears verbessert habe.

 

Edit: Das entspricht übrigens dem was im Wiki Eintrag steht. Das sunxi-mali Makefile installiert die Dateien nach /usr/lib/. Die EGL/GLES Debian Packages, die Dateien gleichen Namens beinhalten installieren diese nach /usr/lib/arm-linux-gnueabihf/ was Vorrang vor /usr/lib/ zu haben scheint. Daher werden im Wiki Eintrag die EGL/GLES Debian aus /usr/lib/arm-linux-gnueabihf/ wegbewegt.

 

Die angehängten Debian Packges ersetzen die original Debian Dateien mit denen aus sunxi-mali.

libegl1-mesa_2-1.1-1_armhf.deb

libgles1-mesa_2-1.1-1_armhf.deb

libgles2-mesa_2-1.1-1_armhf.deb

libsunxi-mali-x11_1.1-1_armhf.deb

Link zu diesem Kommentar
Share on other sites

Ausser das erste Paket geht alles zu installieren.

Es kommt folgende Ausgabe.

(Reading database ... 142071 files and directories currently installed.)
Preparing to unpack libegl1-mesa_2-1.1-1_armhf.deb ...
Unpacking libegl1-mesa (2:1.0-1) over (10.3.2-1) ...
dpkg: error processing archive libegl1-mesa_2-1.1-1_armhf.deb (--install):
trying to overwrite '/usr/lib/arm-linux-gnueabihf/libEGL.so', which is also in package libegl1-mesa-dev:armhf 10.3.2-1
Errors were encountered while processing:
libegl1-mesa_2-1.1-1_armhf.deb

Link zu diesem Kommentar
Share on other sites

  • 11 months later...

es2_info

EGL_VERSION: 1.4 Linux-r3p0-04rel0

EGL_VENDOR: ARM

EGL_EXTENSIONS:

    EGL_KHR_image, EGL_KHR_image_base, EGL_KHR_image_pixmap,

    EGL_KHR_gl_texture_2D_image, EGL_KHR_gl_texture_cubemap_image,

    EGL_KHR_gl_renderbuffer_image, EGL_KHR_reusable_sync, EGL_KHR_fence_sync,

    EGL_KHR_lock_surface, EGL_KHR_lock_surface2

EGL_CLIENT_APIS: OpenGL_ES

GL_VERSION: OpenGL ES 2.0

GL_RENDERER: Mali-400 MP

GL_EXTENSIONS:

    GL_OES_texture_npot, GL_OES_compressed_ETC1_RGB8_texture,

    GL_OES_standard_derivatives, GL_OES_EGL_image, GL_OES_depth24,

    GL_ARM_rgba8, GL_ARM_mali_shader_binary, GL_OES_depth_texture,

    GL_OES_packed_depth_stencil, GL_EXT_texture_format_BGRA8888,

    GL_EXT_blend_minmax, GL_OES_EGL_image_external, GL_OES_EGL_sync,

    GL_EXT_multisampled_render_to_texture, GL_EXT_discard_framebuffer,

    GL_OES_get_program_binary, GL_EXT_shader_texture_lod

 

Link zu diesem Kommentar
Share on other sites

  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...