An Open Letter to ARM / Mali: Please stop doing this

Dear ARM, in charge of the Mali GPU: DO NOT REUSE THE SAME DEVICE ID FOR TWO DIFFERENT GPU MODELS.STOP DOING THAT. In case you don’t understand what I’m talking about, here’s an example: in 3DMark for Android Wild Life, the MC4 model has a score 1483, the MP12 model […]


My Ubuntu Linux boots into a black screen: GUIDE

HELP! My Linux computer was working fine and today after I rebooted, it would not longer boot to a GUI, or it boots to a black screen, or it boots into the terminal, or I have no display acceleration and the best resolution I can do is 1024×768 This guide […]


Vulkan integration between multiple libraries (e.g. Qt + OgreNext)

So I’ve been working into integrating Qt Quick (QML) and OgreNext when using the Vulkan RenderSystem for use in Gazebo. Note that I’m talking about Qt Quick. The ‘stable’ Qt Widgets interface (which uses QVulkanWindow) doesn’t have this problem because it’s too simple. There are various ways to perform an […]


DirectStorage speculations & myths

So, it’s been 2 months since the release of DirectStorage Github repos and no new major updates. I deferred this post for a little while waiting for more updates, but I guess I’ll just have to post it with what has been made available so far. Myths? At least so […]


The road to 16-bit floats GPU is paved with our blood

Ok that was a flashy clickbait-y title! What? You didn’t like it? I’m proud of that one! So I recently tried to implement 16-bit floats into our shaders. I knew it was untested. What I was not prepared is… how untested everything is! We use macros like #define midf min16float. […]


Vulkan: Why some GPUs expose a dozen of identical memory types?

If you browse the capabilities of the GeForce 1080, you’ll notice it exposes 8 memory types on heap 1 If you browse an even older GeForce GTX 680, you’ll notice it exposes 2 memory types on heap 0 and 8 memory types on heap 1, often with propertyFlags = 0 […]


Apple M1 Max GPU: Ferrari or Fiat 600?

So I got a question from a fellow graphics dev, where he was waiting to get his hands on an M1 Max to see how much he can push on it, and his main question was: Should I treat it like a mobile GPU or Desktop GPU? So what does […]


Radeon RX 6800 XT and Linux

So I got Radeon 6800 XT working on Ubuntu 18.04.5 LTS but it wasn’t hassle free, given the card is too new To get it working, you’ll need the following: Mainline kernel 5.11+ or newer (5.13+ recommended) Newer firmware Kisak PPA Optionally 5.13 patch for Full RGB option (discussion) Update: […]


Getting ASAN to work with Ignition Gazebo

I’m adding this as a reminder for myself. To get ASAN to work with Ignition Gazebo we first need to modify CMakeLists.txt to build with ASAN. For every module (e.g. ign-gazebo, ign-rendering, ign-gui, etc) you wish to have full ASAN analysis, write this at the top of each CMakeLists.txt: Running […]


Explain Bitcoin tech like I’m 5

I finally found an explanation that worked on my (non-tech-savvy) friends using an analogy. How Bitcoin works, consensus, and why ‘mining’ rewards money. Why on Earth having a computer running all day earns money? My friends struggled with this concept. This explanation was very well received. So I thought I’d […]