Self-hosted OpenGL ES Development on ChromeOS?

opengles chromeos

This is a guest post by blu about developing OpenGL ES applications on Chrome OS. Ever since I’ve been using a chromebook in developer mode as my daily notebook (can’t beat 10h-plus battery life on ~300EUR well-performing machines), I’ve been missing one thing ‒ OpenGL ES coding under ChromeOS. My chromebook is more than well-equipped for GLES3 hardware-wise (verified via dual-booting to ArchLinux), and I always have up-to-date toolchains self-hosted under ChromeOS, thanks to an excellent package manager aptly named Chromebrew. And yet my coding-on-the-go under ChromeOS has been limited to console apps ‒ ChromeOS has strict limitations which include no X11 display manager, or any other industry-standard display manager that I’m aware of, and I don’t feel like dual-booting into ArchLinux too often ‒ ChromeOS has spoiled me with its fine-tuned performance. The no-display-manager limitation of ChromeOS is usually worked-around via Crouton but in my case Crouton would not help ‒ no 3D-hardware-accelerated support on ARM chromebooks. So in …

ROC-RK3328-CC Board Review, or the Case for Fast Storage and Adequate Power Supply

ROC-RK3328-CC Board Connection

Firefly team from T-chip company has send me some of their Rockchip development boards, and we’ve already checked the provided boards and accessories, so today I’ll report my experience with one of the board: ROC-RK3328-CC also known as Renegade. I won’t test it with Android, since I have already reviewed RK3328 Android TV boxes such as Zidoo X7, and I’ve been told the team is hard at work with Android 8.1 SDK, so an Oreo image should be released in a few weeks/months. So I had initially planned to report my experience with one of the Linux images,  then show how to install mainline Linux (currently 4.17) to the board, and reports what works. However, I encountered many issues, although likely not directly related to the board or its software support, so instead I’ll write about my experience getting started with the board, and list all the issues I had so that people can avoid those – or at least …

Review of Ubuntu 18.04 on ODROID-XU4Q Development Board

ODROID-XU4Q

Hardkernel released their first Samsung Exynos 5422 octa-core board in July 2014 with ODROID-XU3, which at the time was really a powerful board, but also pricey at $179. Later that year, the company released a cheaper version ($99) called ODROID-XU3 Lite, which I had the chance to review with Ubuntu 14.04 and Android 4.4. The company’s adventure with Exynos 5422 processor did not stop there, as in 2015 they released the smaller and even cheaper ($74) ODROID-XU4 board, and last year launched a fanless version of the board with ODROID-XU4Q featuring a large heatsink. More recently, the company also introduced ODROID-HC1 and ODROID-MC1 solutions for respectively network storage and clusters applications. That’s the short history of Hardkernel Exynos 5422 boards as I remember it, and that means that since 2014, or nearly 4 years so far, the company has kept updating Ubuntu and Android firmware for their board, including the just released Ubuntu 18.04 (MATE) operating system, which I’m going …

Arm Releases Android / Linux Vulkan User Space Drivers for Mali GPUs (HiKey 960, Firefly-RK3288 Boards)

A little while ago, I wrote about Imagination’s PowerVR CLDNN Neural Network SDK and Image for Acer Chromebook R13, and some people looks into the Arch Linux Arm image and were pleasantly surprised to find Vulkan drivers, as it was the first Arm platform support Vulkan in Linux. It looks like there are now more Arm hardware supporting Vulkan drivers in Linux, as Arm has released binary user-space components for GNU/Linux and Android for development platforms featuring the Arm Mali Midgard GPU family, and – provided the GPU can handle it – supporting the following APIs: OpenGL ES 1.1 / 2.0 / 3.0 / 3.1 / 3.2, OpenCL 1.1 / 1.2 / 2.0, Vulkan 1.0, and RenderScript. Mali-G71 GPU is supported by Android 8.0 and Linux (fbdev) ARM64 drivers for Hikey 960 board, and Mali-T760 should be supported by Linux drivers (fbdev / wayland / X11) for Firefly-RK3288 board. Hikey 960 and Firefly-RK3288 drivers don’t have specific files about Vulkan, …

Qualcomm Snapdragon 845 Octa Core Kryo 385 SoC to Power Premium Smartphones, XR Headsets, Windows Laptops

Qualcomm Snapdragon 845 processor was expected since May 2017 with four custom Cortex A75 cores, four Cortex A53 cores, Adreno 630 GPU, and X20 LTE modem. with the launch planned for Q1 2018. At least, that what the leaks said. Qualcomm has now formally launched Snapdragon 845 Mobile Platform and rumors were mostly right, as the the octa-core processor comes with four Kryo 385 Gold cores (custom Cortex A75), four Kryo 385 Silver cores (custom Cortex A55) leveraging DynamIQ technology, an Adreno 630 “Visual Processing System”, and Snapdragon X20 modem supporting LTE Cat18/13. The processor is said to use more advanced artificial intelligence (AI) allowing what the company calls “extended reality (XR)” applications, and will soon be found in flagship smartphones, XR headsets, mobile PCs, and more. Qualcomm Snapdragon 845 (SDM845) specifications: Processor 4x Kryo 385 Gold performance cores @ up to 2.80 GHz (custom ARM Cortex A75 cores) 4x Kryo 385 Silver efficiency cores @ up to 1.80 GHz …

Allwinner SoCs with Mali GPU Get Mainline Linux OpenGL ES Support

OpenGL ES support in Linux for ARM SoC is usually pretty hard to get because of closed source binary blobs coupled with the manufacturers focus on Android. Workarounds include open driver projects such as Freedreno for Qualcomm Adreno GPU, Nouveau for Tegra, or Etnaviv for Vivante GPUs, as well as libhybris library that converts Linux calls into Android calls in order to leverage existing Android GPU binary blobs. Allwinner processors relies on either PoverVR or ARM Mali GPU, and the former does not have any open source project, while some work is still being going for the latter with Lima project, but it’s not ready yet. That means so far, you’re only option was to use libhybris for either GPU family. The good news is that Free Electrons engineers have been working on OpenGL ES support for ARM Mali GPU for Allwinner processor, and have been allowed to release the userspace binary blobs. Not quite as exciting as an actual …

ARM Introduces Bifrost Mali-G51 GPU, and Mali-V61 4K H.265 & VP9 Video Processing Unit

Back in May of this year, ARM unveiled Mali-G71 GPU for premium devices, and the first GPU of the company based on Bifrost architecture. The company has now introduced the second Bifrost GPU with Mali-G51 targeting augmented & virtual reality and higher resolution screens to be found in mainstream devices in 2018, as well as Mali-V61 VPU with 4K H.265 & VP9 video decode and encode capabilities, previously unknown under the codename “Egil“. Mali-G51 GPU ARM Mali-G51 will be 60% more energy efficiency, and have 60% more performance density compared to Mali-T830 GPU, making the new GPU the most efficient ARM GPU to date. It will also be 30% smaller, and support 1080p to 4K displays. Under the hood, Mali-G51 include an updated Bifrost’s low level instruction set, a dual-pixel shader core per GPU core to deliver twice the texel and pixel rates, features the latest ARM Frame Buffer Compression (AFBC) 1.2, and supports Vulkan, OpenGL ES 3.2, and OpenCL …

This Video Shows Vulkan API’s Higher Power Efficiency Compared to OpenGL ES API on ARM SoCs

Vulkan was introduced as the successor of OpenGL ES in March 2015, promising to take less CPU resources, and support multiple command buffers that can be created in parallel and distributed over several cores, at the cost of slightly more complex application programming since less software work in done inside the GPU drivers themselves with app developers needing to handle memory allocation and thread management. This was just a standard at the time, so it still needed some time to implement Vulkan, and work is still in program but ARM showcased the power efficiency of Vulkan over OpenGL ES in the video embedded at the end of this post. The demo has the same graphics details and performance using both OpenGL ES and Vulkan, but since the load on the CPU in that demo can be distributed over several CPU cores with Vulkan against a single core for OpenGL ES, it’s possible to use low power cores (e.g. Cortex A53) …