Posts Tagged ‘opengl’

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

December 7th, 2017 9 comments

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 (custom ARM Cortex A55 cores)
    • DynamIQ technology
  • GPU (Visual Processing Subsystem) – Adreno 630 supporting OpenGL ES 3.2, OpenCL 2.0,Vulkan 1.x, DxNext
  • DSP
    • Hexagon 685 with 3rd Gen Vector Extensions, Qualcomm All-Ways Aware Sensor Hub.
    • Supports Snapdragon Neural Processing Engine (NPE) SDK, Caffe, Caffe2, and Tensorflow
  • Memory I/F – LPDDR4x, 4×16 bit up to 1866MHz, 8GB RAM
  • Storage I/F – TBD (Likely UFS 2.1, but maybe UFS 3.0?)
  • Display
    • Up to 4K Ultra HD, 60 FPS, or dual 2400×2400 @ 120 FPS (VR); 10-bit color depth
    • DisplayPort and USB Type-C support
  • Audio
    • Qualcomm Aqstic audio codec and speaker amplifier
    • Qualcomm aptX audio playback with support for aptX Classic and HD
    • Native DSD support, PCM up to 384kHz/32bit
  • Camera
    • Spectra 280 ISP with dual 14-bit ISPs
    • Up to 16 MP dual camera, up to 32 MP single camera
    • Support for 16MP image sensor operating up to 60 frames per second
    • Hybrid Autofocus, Zero Shutter Lag, Multi-frame Noise Reduction (MFNR)
    • Video Capture – Up to 4K @ 60fps HDR (H.265), up to 720p @ 480fps (slow motion)
  • Connectivity
    • Cellular Modem – Snapdragon X20 with peak download speed: 1.2 Gbps (LTE Cat 18), peak upload speed: 150 Mbps (LTE Cat 13)
    • Qualcomm Wi-Fi 802.11ad Multi-gigabit, integrated 802.11ac 2×2 with MU-MIMO, 2.4 GHz, 5 GHz and 60 GHz
    • Qualcomm TrueWireless Bluetooth 5
  • Location – Support for 6 satellite systems: GPS, GLONASS, Beidou, Galileo, QZSS, SBAS; low power geofencing and tracking, sensor-assisted navigation
  • Security – Qualcomm Secure Processing Unit (SPU), Qualcomm Processor Security, Qualcomm Mobile Security, Qualcomm Content Protection
  • Charging – Qualcomm Quick Charge 4/4+ technology
  • Process – 10nm LPP

The company will provide support for Android and Windows operating systems. eXtended Reality (XR) is enabled with features such as room-scale 6DoF with simultaneous localization and mapping (SLAM), advanced visual inertial odometry (VIO), and Adreno Foveation. Maybe I don’t follow the phone market closely enough, but I can’t remember seeing odometry implemented in any other phones, and Adreon Foveation is not quite self-explaining, so the company explains it combines graphics rendering with eye tracking, and directs the highest graphics resources to where you’re physically looking, while using less resources for rendering other areas. This improves the experience, performance, and lower power consumption.


Click to Enlarge

Compared to Snapdragon 835, the new processor is said to be around 25 to 30% faster, the Spectra camera and Adreno graphics architectures are claimed to boost power efficiency by up to 30 percent, and the LTE modem is a bit faster (1.2 Gbps/150Mbps vs 1.0 Gbps/150Mbps). Quick Charge 4+ technology should deliver up  to 50 percent charge in 15 minutes. Earlier this year when SD835 was officially launched, there was virtually no mention of artificial intelligence support in mobile APs, but now NNA (Neural Network Accelerator) or NPE (Neural Processing Engine) are part of most high-end mobile processors, which in SD845 appears to be done though the Hexagon 685 DSP. High Dynamic Range (HDR) for video playback and capture is also a novelty in the new Snapdragon processor.

One of the first device powered by Snapdragon 845 will be Xiaomi Mi 7 smartphone, and according to leaks it will come with a 6.1″ display, up to 8GB RAM, dual camera, 3D facial recognition, and more. Further details about the phone are expected for Mobile World Congress 2018. Considering the first Windows 10 laptop based on Snapdragon 835 processor are expected in H1 2018, we may have to wait until the second part of the year for the launch of Snapdragon 845 mobile PCs.

More details may be found on Qualcomm Snapdragon 845 mobile platform product page.

Allwinner SoCs with Mali GPU Get Mainline Linux OpenGL ES Support

September 26th, 2017 21 comments

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 open source release, but at least, we should now be able to use OpenGL ES with mainline Linux on most Allwinner SoCs (the ones not using PowerVR GPUs).

If you want to try it on your platform, you’ll first need to add ARM Mali GPU device tree definitions to your platform’s DTS file if it is not already there, before building the open source Mali kernel module for your board:

This will install mali.ko module to your rootfs. The final step is to get the userspace drivers, either fbdev or X11-dma-buf depending on your setup, for example:

That should be all for the installation, and you should be able to test OpenGL ES using es2_gears or glmark2-es2 programs. Based on the github patchsets, this should currently work for Linux 4.6 to 4.14.

Update: On a separate note, somebody has recently released ffmpeg 3.3.4 with open source Cedrus driver for Allwinner video processing unit, and tested with Allwinner R40 and A64 SoC. Code and package can be found in github.

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

November 1st, 2016 4 comments

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

Click to Enlarge

Click to Enlarge

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 2.0 APIs.

More information can be found on the product page, and an ARM community blog post entitled “The Mali-G51 GPU brings premium performance to mainstream mobile“.

Mali-V61 VPU


Mali-V61 can scale from 1 to 8 cores to handle 1080p60 up to 4K @ 120 fps, supports 8-/10-bit HEVC & 8-/10-bit VP9 up to 4K UHD video encoding and decoding, making it ideal for 4K video conference and chat, as well as 32MP multi-shot @ 20 fps.

The company claims H.265 and VP9 video encoding quality is about the same for a given bitrate with Mali-V61 as shown in the diagram below.

Click to Enlarge

VP9 vs HEVC vs H.264 – Click to Enlarge

Beside the capability of selecting 1 to 8 cores, silicon vendors can also decide whether they need encoding or decoding block for their SoC. For example camera SoC may not need video decoding support, while STB SoCs might do without encoding. While Mali-V61 is a premium IP block, ARM is also expecting it in mainstream devices possibly also featuring Cortex A53 processor cores and Mali-G51 GPU.

You’ll find more details on the product page, and ARM community “Mali-V61 – Premium video processing for Generation Z and beyond” blog post.

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

October 20th, 2016 1 comment

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.

opengl-es-vs-vulkanThis 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) operating at a lower frequency and voltage, hence reducing power consumption.

ARM also measured that the complete OpenGL ES demo would use 1270 joules against 1123 Joules for the Vulkan demo, resulting in about 15% energy savings in this “early stage” demo.

Categories: Android, Video Tags: gpu, opengl, power, vulkan

Open Source Operating Systems News – Maru OS, Zephyr, ReactOS, Tizen 3.0, and Raspbian

February 18th, 2016 9 comments

There have been several news related to open source operating systems in the last couple of weeks including Maru OS to run Debian on Android, Zephyr Project real-time OS managed by the Linux Foundation, ReactOS an open source port of Windows XP, and Raspberry Pi boards are getting a Tizen 3.0 port, as well as a new Raspbian release.

Maru OS – Mobile <-> Desktop  Convergence


Maru OS mobile operating system is supposed to do what Ubuntu convergence promised: it runs in mobile mode on the go with Android Lollipop mobile OS, once you connect the phone to an HDMI screen, and pair Bluetooth keyboard and/or mouse, it will switch to desktop mode running Debian Linux. The downside is that so far it a single developer (Preetam D’Souza) worked on it, and the beta version only works on Nexus 5 smartphone. However, since the project went viral, dozen of other people wanted to get involved and help, so Preetan decided to open source it, and a community may form around the project.

You can find more details on Maru OS website and blog.

Zephyr Real-time Operating System for IoT


Zephyr Project is a lightweight real-time operating system (RTOS) design for IoT applications comprising of a microkernel for lower priority tasks, and a nanokernel to handle the real-time part. Zephyr memory footprint can be as low as 8KB, it supports x86, ARMv7-M, and ARC instructions sets, includes Bluetooth and 6LoWPAN stacks, as well as I/O drivers for GPIOs, ADC, I2C, and SPI, and supports Constrained Application Protocol (CoAP) and Datagram Transport Layer Security (DTLS).

The main features are explained in the short video below.

You can get the source code for the first release as follows:

It will run with QEMU for x86 or ARM, as well as several development boards such as MinnowBoard MAX, Quark D2000 and SE boards, Arduino 101, Galileo, Arduino Due, and NXP Freedom development platform.

You can find more details, including full documentation and Zephyr SDK on Zephyr Project website, and the Linux Foundation announcement.

ReactOS 0.4.0 Release


ReactOS is an open source operating system written from scratch – i.e. not based on Linux – that looks like Windows XP, and runs Windows applications. The source code has over 9 millions lines of code contributed from over 100 developers, so it’s not exactly a small project. It can run on older computers with as low as 96MB RAM and 500MB storage.

The developers have been working on the project for many years, but the news is that ReactOS 0.4.0 has been released with some new features including ext2 read/write and NTFS read support, a new explorer shell and theme support, and on the hardware drives side SATA, sound, USB and wireless networking are now working. The operating system is still considered alpha, but if you want to give it a try, you can download the ISO to boot or install it from a USB drive.

Raspberry Pi Gets Tizen 3.0 Port, new Raspbian Release

Raspberry_Pi_2_Tizen_3.0Tizen adoption rate is relatively low, so the Samsung Open Source Group decided to leverage Raspberry Pi 2 reach, over 5 millions sold for far, to bring more people on board. Development is still in progress, so while Tizen 3.0 is booting fine on Raspberry Pi 2 board, supports 3D graphics acceleration, but still lacks some functionalities.

You can try it by downloading tizen.rpi-sdimg.LATEST, and dumping it into a micro SD card the usual way, i.e. Win32DiskImager or dd. If you’d rather build one of the minimal images by yourself, you can do so by following the build instructions.

If you are running the better known Raspbian distribution on your Raspberry Pi board(s), you may consider upgrading it, as the Raspberry Pi Foundation recently announced a new release of the Debian based operating system which mostly contains bug fixes and packages updates. There’s also a new experimental feature: an OpenGL driver for the desktop, only implemented for RPi 2. It is turned off my default, but can be enabled with raspi-config.

To update Raspbian to the latest version, simply run:

If you also want to tried OpenGL applications:

H5OS HTML5 based OS

H5OSOne quick update, as I’ve just seen Linaro member ACADINE Technologies released the first version of H5OS HTML5 based operating system designed for mobile devices and IoT and that has been forked from  Firefox OS.

PowerVR GT7200 Plus and GT7400 Plus GPUs Support OpenCL 2.0, Better Computer Vision Features

January 7th, 2016 3 comments

Imagination Technologies introduced PowerVR Series7XT GPU family with up to 512 cores at the end of 2014, and at CES 2016, they’ve announced Series7XT Plus family with GT7200 Plus and GT7400 Plus GPUs, with many of the same features of Series7XT family, plus the addition of OpenCL 2.0 API support, and improvements for computer vision with a new Image Processing Data Master, and support for 8-bit and 16-bit integer data paths, instead of just 32-bit in the previous generation, for example leading to up to 4 times more performance for applications, e.g. deep learning, leveraging OpenVX computer vision API.

Block Diagram (Click to Enlarge)

Block Diagram (Click to Enlarge)

GT7200 Plus GPU features 64 ALU cores in two clusters, and GT7400 Plus 128 ALU cores in a quad-cluster configuration. Beside OpenCL2.0, and improvements for computer vision, they still support OpenGL ES 3.2, Vulkan, hardware virtualization, advanced security, and more. The company has also made some microarchitectural enhancements to improve performance and reduce power consumption:

  • Support for the latest bus interface features including requestor priority support
  • Doubled memory burst sizes, matching the latest system fabrics, memory controllers and memory components
  • Tuned the size of caches and improved their efficiency, leading to a ~10% reduction in bandwidth

The new features and improvements of PowerVR Series7XT Plus GPUs should help designed better systems for image classification, face/body/gesture tracking, smart video surveillance, HDR rendering, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics, etc…

You can find more details on Imagination Tech Blog.

Google Plans Vulkan API Support for Android, Imagination Shows a Demo

August 11th, 2015 No comments

Vulkan graphics API is the successors to OpenGL and OpenGL ES API, which will support multi-threaded rendering, move some of the complexity to the applications, and simplify graphics drivers, which may not be a bad things since these tend to be closed source, and bugs may be hard to get fixed. Google, which is now a subsidiary of a new company called Alphabet,  has recently announced that Vulkan will be implemented in future versions of Android, although OpenGL ES will still be supported, so developers can select their preferred graphics API for their apps, as Vulkan will be more complex for application programmers than OpenGL ES.

OpenGL_ES_vs_VulkanSeparately, Imagination technologies showcased their Vulkan driver for PowerVR Rogue GPU on the Nexus Player powered by an Intel SoC including a PowerVR G6430 GPU, and compare the Vulkan demo to the same demo using OpenGL ES 3.0 drivers.

The difference between Vulkan and OpenGL ES 3.0 looks amazing, with Vulkan performing much better, but Imagination explains that this demo is an “exaggerated scenario that is intended to highlight and amplify Vulkan’s strengths. It is not intended to show OpenGL ES in a bad light – we are deliberately using OpenGL ES in a way that it was not designed for.” So I’m not sure if we can draw that many conclusions from the demo.

Imagination Technologies blog post explains the implementation and Vulkan advantage in much more details, such as lower CPU usage, and multi-threading support.

Meet Vulkan, The Successor of OpenGL and OpenGL ES 3D Graphics APIs

March 4th, 2015 6 comments

So far embedded systems are typically using SoCs with GPU supporting OpenGL ES, a subset of the full fledge OpenGL API used in desktop computers and workstations. These royalty-free standards are defined by Khronos Group non-profit organization, and as features in the embedded space and traditional computers merge, the group has now revealed the next-generation OpenGL specs will be called Vulkan. The new API will run on GPUs supporting OpenGL ES 3.1 or greater, take less CPU resources than its predecessors, and support multiple command buffers that can be created in parallel.


More work will be required at the application level, but direct GPU control by the drivers will apparently result in less memory copies improving performance, or at least off-loading the CPU. It might be transparent to developers using game engines. GPU drivers will also be less complex.

Vulkan will also use the new SPIR-V language shared with OpenCL 2.1 for graphics and compute. A (possibly open source) GLSL shader source to SPIR-V translator / compiler will be provided for legacy code.


Vulkan Language Ecosystem

You’ll find more technical details, and some information about tools on Khronos Vulkan page.

I understand that Vulkan is still work-in-progress, but Imagination Technologies has already written alpha Vulkan compatible drivers for their PowerVR GPU, and run their Library demo on Android 5.0, so progress appears to be good, but it looks like more work has to be done to improve performance.