GNOME Renders on Arm Mali-G31 Bifrost GPU with Fully Open Source Code

Panfrost ODROID Go Advance Black Edition

We first wrote about Panfrost open-source Arm Mali GPU driver getting initial support for Mali-G31 Bifrost GPU in late April, when engineers at Collabora managed to run some basic demos. Progress has been fast-paced as the company has now implemented support for all major features of OpenGL ES 2.0 and some features of OpenGL 2.1. That means hardware-based on Arm Mali-G31 GPU such as ODROID Go Advance (used for testing) can run Wayland compositors with zero-copy graphics, including GNOME 3, every scene in glmark2-es2 benchmarks, and some 3D games such as Neverball. All without any binary blobs. The company also claims to support hardware-accelerated video players mpv and Kodi. The way it should work is that while Panfrost driver renders the user interface, Amlogic open-source video decoder developed by BayLibre handles hardware video decoding. All changes are already included in upstream Mesa with no out-of-tree patches required, and Bifrost support can be enabled using PAN_MESA_DEBUG=bifrost environmental variable. There are many …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Collabora & Microsoft to Bring OpenCL 1.2 and OpenGL 3.3 to DirectX 12 enabled Windows Devices

OpenCL DirectX Translation Layer

Collabora has been working on open-source graphics projects for a while, including Panfrost open-source drivers for Arm Midgard and Bitfrost GPUs which got experimental OpenGL ES 3.0 support earlier this year. But the company has also been working with Microsoft in order to provide an OpenCL 1.2 & OpenGL 3.3 translation layer for Windows devices compatible with DirectX 12. Their solution relies on Mesa 3D OpenCL and OpenGL open-source implementation with three main components: an OpenCL compiler using LLVM and the SPIRV-LLVM-Translator to generate SPIR-V representations of OpenCL kernels. The data goes through an SPIR-V to NIR translator (NIR is Mesa’s internal representation for GPU shaders), and finally to NIR-to-DXIL generating a DXIL compute shader and metadata understood by DirectX 12 (D3D12) a custom OpenCL runtime to do a direct translation of DirectX 12 (Not based on Mesa Clover implementation) a Gallium driver that builds and executes command-buffers on the GPU using the D3D12 API. It turns OpenGL commands into …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Rock Pi 4 SBC Runs GNOME & KDE Plasma using Panfrost Open Source GPU Driver & Wayland

RK3399 Panfrost GNOME

One of the highlights of Linux 5.2 release was support for two new Arm Mali GPU open-source drivers, namely Lima for Mali-4xx GPU, and Panfrost for the Midgard Mali-T6xx/7xx/8xx series, and the more recent Bifrost Mali-Gxx GPUs. Collabora worked on the release and was donated a few Rock Pi 4 boards from Radxa directly to work on the project. For those who are not familiar, Rock Pi 4 board is powered by a Rockchip RK3399 processor with a Mali-T860MP4 GPU that is supported by Panfrost open source GPU driver. The company managed to have Debian 10 Buster running on Rock Pi 4 using 3D graphics acceleration thanks to Panfrost drivers on both GNOME and KDE Plasma desktop environment, as well as Weston Wayland compositer. The good news is that you can build Rock Pi 4 images by yourself using Debos with the following commands: Alternatively, you could directly download pre-built images directly with Weston and Panfrost. You can login with …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Create Minimal Debian Upstream Images with Debos and Armbian

Debos Armbian Debian Orange Pi Zero Plus 2 H5

[Update June 28: Post updated with correct procedure thanks to Collabora help] Armbian provides lightweight Debian or Ubuntu images for various Arm Linux SBC, and over the years has become the recommended source for stable firmware images for boards part of Orange Pi & Banana Pi families, and others. Uncompressed images are still over 1GB and come with Armbian-specific tools, kernel and bootloader. If you’d like to leverage Armbian images, but instead create a Debian upstream image with only the packages you intend to use, Collabora explains how to do just that with Orange Pi Zero +2 H5 and Libre Computer AML-S905X-CC (aka Le Potato) boards using Debos Debian OS builder. I’ve decided to give a try at the instructions for Orange Pi Zero Plus2 H5 in my laptop running Ubuntu 18.04 to better understand how this all works. I’ll assume you’ve already installed Docker, and made sure you’ve got it working as a non-root user, so we can install …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

SPURV Runs Android Apps in Linux over Wayland

SPURV Architecture

We’ve previously seen it was possible to run Android apps natively inside Linux thanks to Anbox that leverages the Linux kernel in Ubuntu for better integration and performance, and uses an LXC container to run Android operating system. Collabora now offers a different solution with SPURV that runs the full Android OS, including a separate Linux kernel, in its own container and works over Wayland thanks to a graphics bridge from Android to Wayland. Four main components are part of the implementation: Android target device – This component integrates SPURV into Android by using the device infrastructure that the Android codebase provides, and the company specifically the target runs inside of a systemd-nspawn container. SPURV Audio – Bridges the Android Audio Hardware Abtraction Layer (HAL) to the host PulseAudio stack. SPURV HWComposer – Integrates Android windows into Wayland by implementing a HWC-to-Wayland bridge, where HWC is the Android API for implementing display & buffer management. The composer also manages user …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Android Can Now Boot with a Full Open Source Graphics Stack on NXP i.MX6 Boards

While the Android operating systems is itself open source, it still relies on proprietary binary files to leverage GPU acceleration, VPU hardware decoding, wireless connectivity, and so on. It’s been possible to run Android with an open source software graphics stack, but it’s normally terribly slow and barely usable. But Collabora has announced it could now boot Android with a full-graphics stack on iMX6 platforms using no proprietary blobs at all. To do so, they leveraged the work done on Etnaviv open source drivers for Vivante GPUs, and adding the different formats used for  graphical buffers in Android and Mesa library using modifiers representing different properties of buffers. They further explain: Support was added in two places; Mesa and gbm_gralloc. Mesa has had support added to many of the buffer allocation functions and to GBM (which is the API provided by Mesa, that gbm_gralloc uses). gbm_gralloc in turn had support added for using a new GBM API call, GBM_BO_IMPORT_FD_MODIFIER, which …

Support CNX Software – Donate via PayPal or become a Patron on Patreon

Collabora and Fluendo Release GStreamer SDK 2012.5 Amazon

Last week, Collabora and Fluendo jointly announced the release of an open source software development kit (SDK ) for GStreamer multimedia framework. The SDK aims at easing the integration of Gstreamer  into projects and provides a pre-built version of the framework which is available for Linux, Windows and Mac OS X. GStreamer is used in many Linux applications such as media players (Rhythmbox, Banshee and Amarok),  video editors (PitiVi), and media centers such as XBMC among other applications. It’s also often the framework used to play videos on ARM platforms with implementations for OMAP 4/5 and devices compliant with the OpenMAX standard. Gstreamer website has also been updated and provides links to download GStreamer SDK and documentation on the home page. The new documentation looks pretty good with fives main sections: Instructions for installing the SDK on Linux (Ubuntu, Debian and Fedora), Windows or Mac OS. 11 basic and 2 advanced tutorials. A  guide to deploying applications. Details about releases such as …

Support CNX Software – Donate via PayPal or become a Patron on Patreon