GPU acceleration for X and OpenGL ES2.0

Asked by Jammy Zhou

The graphics performance of EfikaMX smartbook is not so good for missing hardware acceleration of X. I'd like to know if there is any plan to add imx X-accel support as well as OpenGL ES2.0 support. If needed, I can contribute to this support. ;)

Question information

English Edit question
Genesi EfikaMX Support Project Edit question
No assignee Edit question
Solved by:
Matt Sealey
Last query:
Last reply:
Revision history for this message
Ricardo Salveti (rsalveti) said :

Would be good to have at least DRI2 and EXA support on a proper X server driver.

Revision history for this message
Jammy Zhou (jammy-zhou) said :

The EXA support is not a big problem, but DRI2 support may be a little tough. Qualcomm drivers maybe a good reference for us about DRI2/DRM.

Revision history for this message
Matt Sealey (mwsealey) said :

The Efika MX and Smartbook did not ship with accelerated graphics: this was intentional. Genesi stormed ahead with a certain acceleration method which Freescale have only standardized on their 10.10.00 BSP, which has to be released before Genesi can release the drivers. Older versions would give a red tint on EXA acceleration.

There will be no DRI2 access to the command pipe for the 3D unit as it does not make sense right now. The OpenGLES library works on a pixmap level (or framebuffer level depending on which version of EGL you use) and the interface to the GPU is an embedded one meant to be cross-platform for multiple operating systems (Windows CE/Phone, etc.) as well as Linux. We are working on solutions which will give some DRI access to the GPU components, but this is not an important project while 3D works well as it stands.

Revision history for this message
Jammy Zhou (jammy-zhou) said :

Thanks for the update. So when will EXA acceleration be available?

Revision history for this message
Best Matt Sealey (mwsealey) said :

In the coming week or so, it is some way down on the priority schedule after a firmware and kernel update.

Revision history for this message
Jammy Zhou (jammy-zhou) said :

Thanks Matt Sealey, that solved my question.

Revision history for this message
Mathieu (thorias) said :

Is that due to a lacking accelerated X driver that participate in the slugginesh/slow response/high cpu consumption when you move windows around/having slow GUI? Do you have an update about the status of the accelerated X driver?


Revision history for this message
Jammy Zhou (jammy-zhou) said :

I believe Freescale has already released 10.10.00 and 10.11.00, so is there any update in your side? By the way, if I want to refresh the kernel on EfikaMX SB, is there any guide for this?

Revision history for this message
Matt Sealey (mwsealey) said :

You can grab the kernel from PowerDeveloper. It's easy, it's a .deb package. If you're using another distribution then you can get away with extracting it and copying the files out to the correct location (you will have to mkimage the kernel and ramdisk first though). Note that the latest shipped kernels from Genesi are very modular and won't boot without a ramdisk.

If you want to get source from git, use the efikasb-10.08.00-20101205 tag ( and do the following

make mx51_efikasb_devtmpfs_defconfig
make menuconfig
(modify your configuration here)
make uImage && make modules && make modules_install

Don't use the current config as a base, it gets updated all the time and you want the one that goes with the kernel tree. Older systems (pre-2010) should not use the devtmpfs-enabled config or udev will not work.

For kernels from Freescale, the 10.08.00 kernel on gitorious is actually a fine-tuned custom kernel build. We don't give it the Freescale BSP release because we don't include *everything* in the Freescale BSP. Instead we have cherry-picked the relevant patches that fix bugs on our systems. The GPU driver is up to date as of the latest BSP and we are pulling many subsystems up to mainline state. The efikasb-10.08.00 kernel is the very latest available and the only kernel supported by Genesi.

Revision history for this message
Matt Sealey (mwsealey) said :

This is done and in the package repository :)