Posts tagged: Vulkan
Working Around Driver Bugs: Fixing SPIR-V Assembly With Regex 21 Nov 2025
Recently, I worked around a Vulkan driver bug on my Quest 3 by writing code that throws regular expressions at SPIR-V assembly until it's in the right form to make the driver happy. Some of you might not have enjoyed reading that sentence. Those who just dislike the unfamiliar tech jargon are the lucky ones. The rest are already feeling my pain, and this first paragraph isn't even over yet. It's (horror) story time - but you might learn a little about SPIR-V along the way if you stick around. I sure did.
Read more...Vulkan Memory Types 07 Sep 2025
Picking up the discussion on memory and caching: how does this all interact with an external processor such as a GPU? GPUs are an intersting addition to this discussion because their operation is very memory-bound and very very multi-core. They also run alongside CPUs. This makes things ...complicated.
Read more...Rendering an Infinite Grid 01 Sep 2025
I've been working on a little VR project for a while, and one of the first things I needed at the start was something to stand on. So I made an infinite grid to be my floor. Here's what it looks like and how it's made.
Read more...Camera Math 07 Aug 2025
Nothing special here, just stashing away some math I don't enjoy having to look up again and again.
Read more...Dynamic Descriptor Pools 01 Aug 2025
A couple days ago I wrote about my dynamic_buffer helper which I use to push things like uniform blocks to the GPU without worrying too much about preallocating the exact amount of memory I need at application startup. Here's another helper which I use to make allocating descriptor sets easy.
Dynamic Graphics Buffers 30 Jul 2025
Yesterday, I described a ring buffer allocator suitable for pushing data to a GPU. Today, I'm using that allocator to manage a dynamic buffer suitable for sending things like blocks of uniforms up to the GPU which automatically grows when necessary.
Read more...