Status of Embedded GPU Ecosystem – Linux/Mesa Upstream Support (ELC 2018 Video)

The Embedded Linux Confernce is on-going, and the Linux Foundation has been uploading videos about talks in a timely manner on YouTube. I checked out at RISC-V keynote yesterday, but today I’ve watched a talk by Robert Foss (his real name, not related to FOSS) from Collabora entitled “Progress in the Embedded GPU Ecosystem”, where he discusses open source software support in Linux/Mesa from companies and reverse-engineering support. The first part deals with the history of embedded GPU support, especially when it comes to company support. Intel was the first and offers very good support for their drivers, following by AMD who also is a good citizen. NVIDIA has the Nouveau driver but they did not really backed it up, and Tegra support is apparently sponsored by an aircraft supplier. Other companies have been slower to help, but Qualcomm has made progress since 2015 and now support all their hardware, Broadcom has a “one man team” handling VideoCore IV/V,  and …

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

Work on VideoCore V GPU Drivers Could Pave the Way for Raspberry Pi 4 Board

I’ve come across an article on Phoronix this morning, about VideoCore IV GPU used in Broadcom BCM283x “Raspberry Pi” processors, but part of the post also mentioned work related to VC5 drivers for the next generation VideoCore V GPU, written by Eric Anholt, working for Broadcom, and in charge of the open source code related to VideoCore IV GPU for Raspberry Pi. This led me Eric’s blog “This Week in VC4/VC5” and articles such as “2017-07-10: vc5, raspbian performance“, where he explains he committed Mesa drivers for VC5. I’ve just pushed a “vc5” branch to my Mesa tree (https://github.com/anholt/mesa/commits/vc5). This is the culmination of a couple of months of work on building a new driver for Broadcom’s V3D 3.3. V3D 3.3 is a GLES3.1 part, though I’m nowhere near conformance yet. This driver is for BCM7268, a set-top-box SOC that boots an upstream Linux kernel. I’m really excited to be working on a modern GLES implementation, and one that has …

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

Cross Compiling libavg for ARM

libavg is a high-level development platform for media-centric applications using Python as scripting language and written in C++. Bear in mind that are many dependencies with libavg 1.6. I have not built all the libraries required, but instead simply taken the pre-built binaries and header files in the qemu overo image and copied the files as follows: mkdir mnt sudo mount -o loop,offset=$[106496*512] overo_sd_alip.img mnt mkdir ~/edev/beagleboard/libs/lib -p mkdir ~/edev/beagleboard/libs/include cp mnt/usr/lib/* ~/edev/beagleboard/libs/lib/ -rf -d cp mnt/lib/* ~/edev/beagleboard/libs/lib/ -rf -d cp /mnt/usr/include/* ~/edev/beagleboard/libs/include -rf -d sudo umount mnt The -d flag skips the symlink, so we need to recreate then for all library so that the compiler can find libname.so instead of libname.so.12. Save the following scripts to symlinks.sh: and run it where the arm libraries are located (in my case in /home/jaufranc/edev/beagleboard/libs/lib, /home/jaufranc/edev/beagleboard/libs/lib/arm-linux-gnueabi and /home/jaufranc/edev/beagleboard/libs/lib/mesa). This will  create symlinks for most libraries, but not all. Some will still have to be created manually, e.g.: ln -s libboost_thread.so.1.42.0 libboost_thread.so ln …

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

Cross-Compiling Mesa 3D Graphics Library for ARM

Mesa is an open-source implementation of the OpenGL specification that can be used for software emulation or  complete hardware acceleration for modern GPUs.The Mesa library is used by a variety of games (e.g. Quake 2.3), libraries (e.g PyOpenGL), science and technical applications and utilities (e.g. xscreensaver). MesaLib requires X11 libraries. I’ll assume those are already cross-compiled here. For this build, I used pre-built X11 libraries found in ALIP (ARM Internet Platform) binaries. I used the method described here and copied the libs in /lib and /usr/lib and header files in /lib/include found in the qemu overo image respectively to /home/jaufranc/edeve/beagleboard/libs/lib and /home/jaufranc/edeve/beagleboard/libs/include. make sure you use the “-d” with cp to avoid copying the symlinks or some symbolic links would point to x86 binaries or files that do not exist. Here are the instructions to cross-compile MesaLib 7.11 for ARM using arm-linux-guneabi-gcc: Download the latest version of Mesa source code: Extract the source code Install the following packages (makedepend is …

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