Boundary Devices was attending the Embedded Linux Conference Europe (ELCE) 2016 in Berlin and was pleased to discover a very nice Etnaviv demo from Pengutronix running on the Nitrogen6x.
Pengutronix booth @ELCE2016
What's Etnaviv?
Etnaviv is an open-source project that provides a user-space graphics and kernel driver for controlling the Vivante GPUs found in the i.MX family (among others).The huge advantage of the driver is to be open-source, meaning that anyone can contribute to it, making it easier/faster to fix bugs.Also, since the driver is in mainline, it means that you can take advantage of all the latest kernel features available while still being able to use the multimedia IP of the SoC.The kernel driver has been mainlined since version 4.5! Since then, the "Etnaviv developers" have been working on the user-space side of things, getting the libdrm code merged in version 2.4.71.No need to say that Pengutronix, a software services company who started the i.MX mainlining many years ago, is deeply involved in Etnaviv development.If you're interested on Etnaviv status, we strongly recommend reading Phoronix articles on the subject.
What's nice about the demo?
This demo doesn't "just" show the 3D performances of the driver but instead leverages it to showcase the multimedia capabilities supported upstream:
- GStreamer1.0 pipeline that decodes 4 H.264 streams (using CODA driver)
- GPU3D used to do the rendering / effects (using Etnaviv driver)
- Qt5 QML application that manages the content
Pengutronix demo poster
How well does it run?
Although no benchmarking has been done on the current driver, the demo proved it can be used on various projects.Here is a quick video that shows how the demo is running.[video width="1920" height="1080" mp4="https://boundarydevices.com/wp-content/uploads/2016/10/VID_20161012_ELCE.mp4"][/video]It is worth noting that all our reference platforms are supported in mainline kernel! As usual, feel free to post a comment below. UPDATE: Some of you showed some interest into having a demo image. Although the Pengutronix demo above cannot be provided, here is an glmark2 + Qt5 demo for our platforms based on kernel 4.9-rc1, hope you'll like it: