Kazan Software Vulkan Implementation is Optimized for RISC-V Processors

Kazan Vulkan RISC-V GPU

More and more people want to run fully open source systems due to philosophical, privacy and security concerns, but on embedded systems with a GPU is often hard to achieve due to closed-source binary blobs. Projects such as Freedreno and Etnaviv have freed Qualcomm Adreno and Vivante GPUs, but it takes years to implement workable reverse-engineered open source GPU drivers. One solution to get an open source graphics driver from the get-go is to implement the rendering into the CPU, but the problem is that it’s usually really slow, and GPU’s are much faster thanks to their ability to quickly handle parallel tasks. Kazan is a software-rendering Vulkan implementation, but it may be eventually end up as a low-end soft-GPU in some RISC-V SoCs thanks to specific instructions. I found out about Kazan through the Libre RISC-V M-Class chip project that aims to be a low-power, mobile-class, 64-bit quad-core SoC clocked at a minimum 800 MHz clock rate and relying …

Google Pik Image Format Improves on Lossy JPEG and Lossless PNG

Google Pik butteraugli

JPEG lossy compression is still used on most photos in the Internet, while PNG is still the preferred format for lossless compressions. Back in 2010, Google unveiled WebP to improve on both, but that’s only very recently that I started to see a few webp image on the Internet. The company has been working on yet another image for with Pik lossy/lossless image format designed for high quality and fast decoding. Some of the features enabling high quality: Built-in support for psychovisual modeling via adaptive quantization and XYB color space 4×4..32×32 DCT, AC/DC predictors, chroma from luma, nonlinear loop filter, enhanced DC precision Full-precision (32-bit float) processing, plus support for wide gamut and high dynamic range Features allowing faster decoding over 1 GB/s multi-threaded: Parallel processing of large images SIMD/GPU-friendly, benefits from SSE4 or AVX2 Cache-friendly layout Fast and effective entropy coding: context modeling with clustering, rANS Google Pik is royalty-free, and is said to achieve perceptually lossless encodings at …

Panfrost is an Open Source Driver for Arm Mali Midgard GPUs

Panfrost open source arm gpu driver

Getting GPU drivers to work on Linux with Arm SoCs was really a struggle a few years ago due to close-sources binary blobs that required all bugs to be fixed by a single team. But in recent years we’ve seen good progress with open source mobile GPU drivers including Freedreno for Adreno GPUs, and Etnaviv for Vivante GPUs. Arm Mali also got its own open source Lima driver worked on for many years but only for older Utgard GPUs (Mali 400, Mali 450). However, during the Opensource GPU Drivers BoF at Linaro Connect Bangkok 2019, Rob Herring, Technical Architect at Linaro and Tomeu Vizoso, Principal Software Engineer at Collabora, discuss the status of drivers, and I learned about an open source driver for Mali Midgard (Mali-T6xx, Mali-T7xx) GPU called Panfrost. As we’ll see below, the driver is already capable of running basic demos, has been upstreamed to Mesa, and tested on Rockchip RK3288 / R3399, and Amlogic S912 with respectively …

FOSDEM 2019 Open Source Developers Meeting Schedule

FOSDEM 2019

FOSDEM – which stands for Free and Open Source Software Developers’ European Meeting – is a free-to-participate event where developers meet on the first week-end of February to discuss open source software & hardware projects. FOSDEM 2019 will take place on February 2 & 3, and the schedule has already been published with 671 speakers scheduled to speak in 711 events themselves sorted in 62 tracks. Like every year, I’ll create a virtual schedule based on some of the sessions most relevant to this blog in tracks such as  open hardware, open media, RISC-V, and hardware enablement tracks. February 2 10:30 – 10:55 – VkRunner: a Vulkan shader test tool by Neil Roberts A presentation of VkRunner which is a tool to help test the compiler in your Vulkan driver using simple high-level scripts. Perhaps the largest part of developing a modern graphics driver revolves around getting the compiler to generate the correct code. In order to achieve this, extensive …

Google Launches Pixel 3 & Pixel 3 XL Smartphones for $799 and Up

Google Pixel 3

Google just hosted a Made by Google hardware event, where they announced several products, and it’s always interesting to check out what they come up with. In this post, I’ll check out Pixel 3 and Pixel 3 XL premium smartphone from the company, and see if they implemented any significant “innovations”. Google Pixel 3 and Pixel 3 XL specifications: SoC – Qualcomm Snapdragon 845 octa-core processor with 4x Gold cores (Cortex A75 based) @ up to 2.50 GHz, 4x Silver cores (Cortex-A55 based) up to 1.60 GHz, Adreno 630 GPU, Pixel Visual Core, and Titan security chip System Memory – 4GB LPDDR4x Storage – 64GB or 128GB UFS storage Display Pixel 3 – 5.5″ FHD+ (2160×1080) flexible? always-on OLED display with Corning Gorilla Glass 5 Pixel 3 XL – 6.3″  QHD+ (2960 x 1440) always-on OLED display with Corning Gorilla Glass 5 Cameras Rear camera – 12.2MP dual-pixel camera with auto-focus, OIS. Video up to 4K @ 30 fps, 720p …

Self-hosted GLES on ChromeOS, part two

This is a follow-up post from an earlier guest post by Blu about OpenGL ES development on Chrome OS. One can’t practice real-time rendering to disk files for long ‒ it’s just unnatural. So after checking that my habitual GLES tests work as intended on ChromeOS when rendering to an off-screen-buffer-subsequently-saved-to-a-PNG, the next step was to figure out a way how to show frames on screen at a palpable framerate, if possible. Being as new to Chrome OS as the next guy, I had to start from scratch with ‘How to show EGL surfaces on screen fast’. In the comments section to the first article William Barath kindly mentioned that there was a wayland client library on Chromebrew, so I decided to pursue that as I had had (positive) prior experience with wayland. Long story short, the established way on most platforms for connecting wayland to EGL (or vice versa) is to ask wayland/weston for an EGL-compatible window surface, and …

Embedded Linux Conference Europe & OpenIoT Summit Europe 2018 Schedule

Embedded Linux Conference OpenIOT Summit Europe 2018

The Embedded Linux Conference & OpenIoT Summit 2018 took place in March of this year in the US, but the European version of the events are now planned to take place on October 21-24 in Edinburg, UK, and the schedule has already been released. So let’s make a virtual schedule to find out more about some of interesting subjects that are covered at the conferences. The conference and summit really only officially start on Monday 22, but there are a few talks on Sunday afternoon too. Sunday, October 21 13:30 – 15:15 – Tutorial: Introduction to Quantum Computing Using Qiskit – Ali Javadi-Abhari, IBM Qiskit is a comprehensive open-source tool for quantum computation. From simple demonstrations of quantum mechanical effects to complicated algorithms for solving problems in AI and chemistry, Qiskit allows users to build and run programs on quantum computers of today. Qiskit is built with modularity and extensibility in mind. This means it is easy to extend its …

HEIF Image Container Format Leverages H.265/HEVC to Store Photos and Image Sequences

HEIF-vs-animated-GIF-Large

A few years ago, Google introduced WebP image format leveraging VP8 video codec, and the Moving Picture Experts Group (MPEG) has decided to do something similar but instead of using VP8, they went with their own H.265/HEVC video codec for HEIF image container format. HEIF stands for High Efficiency Image File, and is defined by ISO/IEC 23008-12 (MPEG-H Part 12). The storage of the data is based on ISO Base Media File Format (ISOBMFF), and HEIF appears to be especially useful to replace animated GIFs file with better quality and much lower sizes, as well as burst photos. HEIF also appears to compress a little better than JPEG photo with similar quality, but HEIF appears to fallback to JPEG codec sometimes, so it may be improvement in the way metadata is handled? The comparison table show the different features between HEIF and other well-known image format (JEG, WebP, GIF, etc…). Source: Nokiatech Github.io page.   .heic JPEG/Exif PNG GIF (89a) …