OpenGL ES database ES 3.1 and 3.2 support, capability listing pages

After the recent overhaul I now also have added support for OpenGL ES 3.1 and 3.2 to the OpenGL ES hardware database and the Android app.

Both versions added lots of new capabilities that have been lacking from the client application and database, so even though there are lots of reports for OpenGL ES 3.1 and 3.2 those only contain capabilities up to OpenGL ES 3.0. 

GLES 3.1 brought compute shaders, GLES 3.1 geometry and tessellation shaders. Compute is an important feature and not having that information in the database was really hindering it’s usefulness. Continue reading

OpenGL ES hardware database overhaul

I finally found some time to overhaul the OpenGL ES hardware database. I admittedly neglected my OpenGL databases in recent years (mainly due to Vulkan ® and a severe lack of spare time), and especially the OpenGL ES one was in dire need of an overhaul and a cleanup. So I spent a few days fixing lots of problems (both technical and data-related) as well as getting it (mostly) on par with the Vulkan hardware database and the changes are now live.

In general the database should now run much faster and contain better data. If you notice anything (errors, bugs, missing data) drop me a line.

So here is a small run-down of the stuff that has been changed and fixed.

Continue reading

Combined Vulkan and OpenGL ES listing for android

Upon popular request I finally got around combining android device data from my Vulkan and OpenGL ES hardware databases into a convenient table. This should be handy if you plan on supporting both apis on Vulkan or if you just need to check for general device support.

The new page can be reached via

It combines all android device reports from the Vulkan database with all reports from the OpenGL ES database and also uses google’s official device list for translating device IDs (stored with Vulkan and OpenGL ES reports) into actual retail names.

Each entry displays the highest supported Vulkan and OpenGL ES version if there is a report present for that device in at least one of the database and also lists what apis are supported by a given device. Clicking on the version opens up the report for this device in the respective database.

So if you just want to see all devices that support (have a report present for) Vulkan and OpenGL ES you can filter by the list of supported apis or just pass this selection as a parameter to the url:,gles


OpenGL ES CapsViewer updated to 0.3

High on the heels of the last release (0.2),  I just updated the OpenGL ES CapsViewer to version 0.3.

Changelog :

  • Changed way of setting up the OpenGL ES render context
    Certain devices (mostly those with PowerVR GPUs) were reporting wrong OpenGL ES versions (e.g. 1.1 instead of 2.0). I’ve changed the way of setting up the highest possible OpenGL ES version, so those devices should now display their real supported OpenGL ES version.
  • Additional duplicate check
    The app will now check whether your device (with it’s current OpenGL ES and android version) is already present in the database before actually having you input your name and uploading it. If it’s already present you can directly jump to the device report.
  • Action bar at screen bottom
    On narrow devices (usually phones), the action bar will now be display at the bottom of the screen. That should improve the actions’ visibility.

The update should be automatically installed, and if you’ve submitted a device where 0.2 reported a wrong OpenGL ES version, please feel free to resubmit it.


OpenGL ES CapsViewer update to 0.2

ic_launcherI’ve just released an update for the OpenGL ES CapsViewer to google’s playstore. This version should fix crashes upon startup that seemed to be caused by a wrong egl configuration, so for this version I’ve changed the method of selecting the egl configuration for the render context.

So if the application crashed on your device feel free to update (in case you’ve turned automatic updates off) the the most recent version and submit your OpenGL ES reports.

There are already ~30 different devices present in the online database, and over the last few days I added some new features like comparing reports and more listings to the database.

Note that for certain devices (like this Samsung Galaxy Tab 2), the OpenGL ES CapsViewer will read OpenGL ES 1.1 (CM) as the supported OpenGL ES version, though it should actually support OpenGL ES 2.0. Since I don’t have such a device it’s hard to test why it only reports OpenGL ES 1.1.

OpenGL ES Caps Viewer available on Playstore

My first ever mobile app is now available over at Google’s PlayStore! This is a premiere for me, and though I wasn’t on wether to spend the 25$ registration fee for the google’s developer console, I hope many android apps and games will follow.

device-2014-02-02-202348 device-2014-02-02-202410 device-2014-02-02-202423  device-2014-02-02-202459

[appbox googleplay de.saschawillems.glescapsviewer]

The OpenGL ES CapsViewer is the mobile counterpart to the OpenGL CapsViewer, reading the OpenGL ES implementation info of your Android device, as well as device information that may be of use to developers. As with the desktop counterpart these reports can then be submitted to the online database, where (game) developers interested in creating OpenGL ES apps for the android platform can take a look at the capabilities of the different devices.

It currently supports the following features :

  • Basic device information (Name, CPU, screensize)
  • Hardware sensors (including their range and resolution)
  • OpenGL ES implementation information
  • OpenGL ES extensions
  • OpenGL ES compressed texture formats, shader and program binary formats
  • OpenGL ES caps for 1.0, 2.0 and 3.0
  • EGL implementation information

As for the hardware requirements, it should work with Android 3.0 (and up) and needs OpenGL ES 1.0 to work. I’m not that deep into android development, so I may be  a bit off with the requirements, and I’m not certain on wether there’s any use in adding support for handsets with old Android version (2.x and below).

Please note that this is the first release, and that I only have limited ways of testing. I did tests on several mobile devices (my Huawei Ascend G510, differnt current Samsung devices and several emulators), so this first release may not be as stable as I want it to be 😉

So if you encounter any problems or crashes, please drop me a line and I’ll look into it. Also note that that online database is a work-in-progress too, and stuff like comparing reports will be added at a later point.

I hope this Android OpenGL ES hardware database will become as valuable to the developer community as the desktop OpenGL hardware database, which is currently approaching 500 hardware reports. So let me use this posting as a way of thanking all of you that contributed (and still contribute) to that database!

OpenGL ES Hardware Database Preview

It took (a bit) longer than expected, but I finally got the first preview of the online OpenGL ES Hardware Database online. I want this to be the match to the widely used OpenGL Hardware Database (filled by the glCapsViewer). Where the former is aimed at developing desktop applications with OpenGL, the later one is planned to be a helper for all developers planning on deploying OpenGL ES based applications, games or tools on the Android platform (other platforms that support OpenGL ES may follow in the future, the database design is flexible enough) that want to know what features are offered by the different devices on the market.

In addition to the pure OpenGL ES related information, like extensions, caps, texture formats etc. the database will also store device information (OS version, screen size, CPU), device features and available sensors along with their range and resolution. Especially the sensor information should proove valuable in case you want to wether your targeted devices support e.g. a gyroscopic sensor or not. The database is targeted around OpenGL ES 2.0 and above, as that’s the majority of devices currently out there.

The database is still a work in progress and several new features will be added over the coming days and weeks (like comparing reports), but any feedback on how to improve it or what features to add is welcome.

The android app will be release in the near future. It’s currently in alpha testing stage, but seems to run fine on a wide range of devices (at least the ones you see in the database 😉 ). No date yet on when it’ll make it’s way into the public, but since it’s running stable and everything is in place it shouldn’t be too far in the future.

As for the technical backgrounds :
The android app is written in JAVA (yes, I actually like working with a modern language and IDE, something Delphi has been lacking in the recent years) using Eclipse. I had it up and running with the new Android Developer Studio, but since that one is still a preview version I’ll stick with Eclipse for now. Though google’s developer studio seems to come along very nice.
I also made the switch from SVN to GIT with this project, and I’m pretty amazed by all the features that GIT has to offer and how much better suited it is for agile developement. Sure, the tools (especially on windows) are not as convenient as the ones for SVN, but the easy branching, rebasing and stashing stuff easily makes up for that.
The database uses MySQL, and I’ve used the free MySQL workbench to set it up (which is so much better then working with phpMyAdmin). Since I’ve gathered a lot of experience with (SQL) databases due to my current job, the database design for the OpenGL ES database is much better than the one backing up the old OpenGL database. So instead of letting a PHP script import the report’s xml into the database, it’s now done via a stored procedure using XPATH. Not only easier for me to maintain and extend, but also much faster.
And on the other hand the database design is also much more flexible, and adding new stuff and OpenGL ES versions (along with new caps) should be much easier. And you may also notice that the content is provided under a creative commons license.

But once the OpenGL ES database and it’s android app are out in the wild, I’ll get back to the OpenGL database to see what I can do in terms of performance and what features I can add to make it even more valuable to the OpenGL developer community.