At first, Wayland would only run using the software based mesa implementation. I then managed to start weston using hardware accelleration using https://github.com/rockchip-linux/libmali. This package basically installed some custom GL libraries into /usr/local/lib:
Code: Select all
$ ls -lh /usr/local/lib/
total 38M
lrwxrwxrwx 1 root root 11 Mar 28 13:58 libEGL.so -> libEGL.so.1
-rwxr-xr-x 1 root root 8.1K Mar 28 13:58 libEGL.so.1
lrwxrwxrwx 1 root root 17 Mar 28 13:58 libGLESv1_CM.so -> libGLESv1_CM.so.1
-rwxr-xr-x 1 root root 8.1K Mar 28 13:58 libGLESv1_CM.so.1
lrwxrwxrwx 1 root root 14 Mar 28 13:58 libGLESv2.so -> libGLESv2.so.2
-rwxr-xr-x 1 root root 8.1K Mar 28 13:58 libGLESv2.so.2
lrwxrwxrwx 1 root root 12 Mar 28 13:58 libMali.so -> libMali.so.1
-rwxr-xr-x 1 root root 8.1K Mar 28 13:58 libMali.so.1
lrwxrwxrwx 1 root root 18 Mar 28 13:58 libMaliOpenCL.so -> libMaliOpenCL.so.1
-rwxr-xr-x 1 root root 8.1K Mar 28 13:58 libMaliOpenCL.so.1
lrwxrwxrwx 1 root root 11 Mar 28 13:58 libgbm.so -> libgbm.so.1
-rwxr-xr-x 1 root root 19K Mar 28 13:58 libgbm.so.1
lrwxrwxrwx 1 root root 10 Mar 28 13:58 libmali-bifrost-g31-rxp0-gbm.so -> libmali.so
lrwxrwxrwx 1 root root 12 Mar 28 13:58 libmali.so -> libmali.so.1
lrwxrwxrwx 1 root root 16 Mar 28 13:58 libmali.so.1 -> libmali.so.1.9.0
-rwxr-xr-x 1 root root 38M Mar 28 13:58 libmali.so.1.9.0
Code: Select all
[13:59:04.705] Loading module '/usr/lib/libweston-9/gl-renderer.so'
[13:59:04.708] EGL client extensions: EGL_EXT_client_extensions
EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses
EGL_KHR_platform_gbm
rk-debug mali-ver=rsx-p0-1.2
[13:59:04.727] EGL version: 1.4 Bifrost-"r6p0-01rel0"
[13:59:04.727] EGL vendor: ARM
[13:59:04.727] EGL client APIs: OpenGL_ES
[13:59:04.727] EGL extensions: EGL_KHR_partial_update EGL_KHR_image_pixmap
EGL_EXT_image_dma_buf_import EGL_KHR_config_attribs
EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync
EGL_KHR_wait_sync EGL_KHR_gl_colorspace
EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority
EGL_ARM_pixmap_multisample_discard
EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image
EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context
EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image
EGL_EXT_create_context_robustness
[13:59:04.728] warning: Disabling render GPU timeline and explicit synchronization due to missing EGL_ANDROID_native_fence_sync extension
[13:59:04.728] Bad/unknown DRM format code 0x00000000.
[13:59:04.729] EGL_KHR_surfaceless_context available
[13:59:04.734] GL version: OpenGL ES 3.2 v1.r6p0-01rel0.7e9c02db0b7656de6636eb08f95998d6
[13:59:04.734] GLSL version: OpenGL ES GLSL ES 3.20
[13:59:04.734] GL vendor: ARM
[13:59:04.734] GL renderer: Mali-TDVX
[13:59:04.735] GL extensions: GL_ARM_rgba8 GL_ARM_mali_shader_binary
The problem I still have is running any OpenGL or OpenGL ES application. From my understanding OpenGL application will not use hardware accelleration since only OpenGL ES is accellerated?
For OpenGL ES, applications just complain that they can't get a EGL context or display:
Code: Select all
$ es2_info
Error: eglGetDisplay() failed
$ es2gears_wayland
rk-debug mali-ver=rsx-p0-1.2
EGLUT: failed to initialize EGL display
$ es2gears_x11
rk-debug mali-ver=rsx-p0-1.2
EGLUT: failed to initialize EGL display