Accelerated 3D graphics in Linux with Mali-400 via OpenGL ES has been possible for nearly a year on RK3066 devices, but there was no such support for RK3188. This week however, both Naoki FUKAUMI and omegamoon have reported OpenGL ES to work in in their respective RK3188 devices. I don’t know which device omegamoon used, but Naoki did so in Radxa Rock, and even posted instructions to build it yourself.

They’ve mostly followed the work done by olegk0 for Rockchip, and Mali drivers build instructions provided in linux-sunxi community, and it can be summarize in 3 main steps:

Cross-compile drm.ko, mali_drm.ko, ump.ko, mali.ko in a Linux machine Copy and load the four modules to your RK3188 based board or device. Install dependencies and binary Mali drivers from sunxi-linux in your Rockchip device

Once this is done you can try some OpenGL ES demos such as esgears2 or glmark2-es to test it with the framebuffer. es2gears can be installed with “sudo apt-get install mesa-utils-extra” and glmark2-es2 with “sudo apt-get install glmark2-es2“.

I had a quick try this morning, and the building worked, the four modules could load, but es2gears still rendered by software:



libEGL warning: DRI2: failed to authenticate XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0" after 184 requests (171 known processed) with 0 events remaining. EGL_VERSION = 1.4 (DRI2) 1 2 3 4 libEGL warning : DRI2 : failed to authenticate XIO : fatal IO error 11 ( Resource temporarily unavailable ) on X server ":0.0" after 184 requests ( 171 known processed ) with 0 events remaining . EGL_VERSION = 1.4 ( DRI2 )





I used a different toolchain, and kernel source, so this may be the reason. TBC. A successful es2gears output should look like:



EGL_VERSION = 1.4 Linux-r3p2-01rel2 vertex shader info: fragment shader info: info: 2064 frames in 5.0 seconds = 412.635 FPS 2129 frames in 5.0 seconds = 425.630 FPS 1 2 3 4 5 6 EGL_VERSION = 1.4 Linux - r3p2 - 01rel2 vertex shader info : fragment shader info : info : 2064 frames in 5.0 seconds = 412.635 FPS 2129 frames in 5.0 seconds = 425.630 FPS



and glmark2-es2:



======================================================= glmark2 2012.08 ======================================================= OpenGL Information GL_VENDOR: ARM GL_RENDERER: Mali-400 MP GL_VERSION: OpenGL ES 2.0 ======================================================= 1 2 3 4 5 6 7 8 ======================================================= glmark2 2012.08 ======================================================= OpenGL Information GL_VENDOR : ARM GL_RENDERER : Mali - 400 MP GL_VERSION : OpenGL ES 2.0 =======================================================



Further steps would be to enable X11 to use Mali, but I’m not sure this has been tried just yet.

Nevertheless, that should mean you can soon expect Linux images with support for accelerated 3D graphics for your Rockchip RK3188. This does not mean however that hardware video decoding will be possible, as Mali-400 GPU is not a VPU and does not support decoding/encoding. There is, however, a separate effort to brings hardware video decoding support in RK3188, but this should take much more time.

In other news, linux-rochip community has just started a mailing list, so you may want to join if you are interested in software development on Rockchip devices for Linux and Android.