Top all-time · #2825
Maister's Graphics Adventures
Personal blog · themaister.net/blogprogrammingsystems
Maister's Graphics Adventures is a personal blog at themaister.net about programming and systems. Since 2013, 26 different Hacker News readers have linked it 42 times, most often “A case for learning GPU programming with a compute-first mindset”. It is still writing: the last post was on 2026-10-29, and you can follow it by feed.
Most-linked posts?
- /blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/3 people · 3 mentions · first linked 2022-05-24
- A case for learning GPU programming with a compute-first mindset3 people · 3 mentions · first linked 2025-10-06
- Hardcore Vulkan Debugging – Digging Deep on Linux and Amdgpu3 people · 3 mentions · first linked 2023-08-21
- My obsession making native resolution PS2 emulation look good2 people · 2 mentions · first linked 2026-05-11
- Measuring Input Latency with VK_EXT_present_timing2 people · 2 mentions · first linked 2026-07-02
- Compressed GPU Texture Formats2 people · 2 mentions · first linked 2020-08-13
- Graphics Programming like it's 2000: An introduction to Playstation 2 graphics2 people · 2 mentions · first linked 2025-04-07
- Vulkan video shenanigans with RADV and FFmpeg2 people · 2 mentions · first linked 2023-01-06
- Conquering FidelityFX FSR42 people · 2 mentions · first linked 2025-05-09
- My personal hell of translating DXIL to SPIR-V – part 32 people · 2 mentions · first linked 2021-11-07
What Hacker News says?
OpenEmu is a game emulator for Mac. Retroarch http://themaister.net/retroarch.html has existed for ages though. What's different about this?
Comment linking /retroarch.html
on “OpenEmu 1.0 Released”Submitted I designed my own fast game streaming video codec – PyroWave as a story · 432 points
HN discussionIn theory if DirectX games start passing shaders to the driver in SPIR-V, the same format Vulkan uses, then yes it should make Protons job easier. Translating the current DXIL format to SPIR-V is apparently non-trivial to say the least: https://themaister.net/blog/2021/09/05/my-personal-hell-of-t... https://themaister.net/blog/2021/10/03/my-personal-hell-of-t... https://themaister.net/blog/2021/11/07/my-personal-hel…
Comment linking /blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/
on “DirectX Adopting SPIR-V as the Interchange Format of the Future”Submitted Playstation 2 GS emulation – the final frontier of Vulkan compute emulation as a story · 222 points
HN discussionDXIL has other issues beyond being an orphaned fork of LLVM-IR. LLVM is ill-equipped to represents shaders, and there have been real bugs in the wild because of how not-a-shader-language LLVM-IR is. See this [0] post under the 'The classic subgroup breakage – maximal convergence gone awry' section. Read the whole series really if you haven't, it's a fantastic dive into how awful this stuff is. DXIL is also a useless…
Comment linking /blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/
on “Sony's Mark Cerny Has Worked on "Big Chunks of RDNA 5" with AMD”Submitted Pseudo-bandlimited pixel art filtering in 3D: A mathematical derivation as a story · 163 points
HN discussionSlightly off-topic, but I recently saw a very interesting dive into comparing Vulkan to D3D12: https://themaister.net/blog/2021/11/07/my-personal-hell-of-t...
Comment linking /blog/2021/11/07/my-personal-hell-of-translating-dxil-to-spir-v-part-3/
on “Writing an efficient Vulkan renderer (2020)”Submitted A case for learning GPU programming with a compute-first mindset as a story · 67 points
HN discussionYou can read about DX12 being worse here: https://themaister.net/blog/2021/11/ But that's not even the point. Everyone could collaborate on the common API and make it better. Where were Apple and MS? Chasing their NIHs instead of doing it, so you argument is missing the point. It's not about how good it is (and it is good enough, though improving it is always welcome), it's about it being the only collaborative and…
Comment linking /blog/2021/11/
on “Ten Years of D3D12”Submitted My personal hell of translating DXIL to SPIR-V – part 3 as a story · 36 points
HN discussionFaith Ekstrand has an impressive track record of compiler work and has written a few blog posts[1], [1a]. Her Mastodon[2] is also worth a follow. SPIR-V is important in the compute shader space, especially because DXIL and Metal's AIR are similar. I'm going to link three articles critical of SPIR-V: [3], [4], [5]. WebGPU [6] is interesting for a number of reasons, largely because they're trying to actually nail down…
Comment linking /blog/2022/08/21/my-personal-hell-of-translating-dxil-to-spir-v-finale/
on “Ask HN: Resources for GPU Compilers?”Submitted Graphics Programming like it's 2000: An introduction to Playstation 2 graphics as a story · 5 points
HN discussionThis grew out from a much rantier (and worse) version of this article, which talked about the hurdles I faced when considering SPIR-V codegen for our research compiler (Thorin). For a while I wanted to rewrite it, and ultimately to properly discuss what I wanted to discuss, I had to write something introductory in a much broader sense. So it sort of organically grew from there, and that's why the title is now a bit…
Comment linking /blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/
on “The trouble with SPIR-V, 2022 edition”Submitted Hardcore Vulkan Debugging – Digging Deep on Linux and Amdgpu as a story · 4 points
HN discussionSPIR-V is also a bad format for shaders (according to shader compiler devs): https://themaister.net/blog/2021/09/05/my-personal-hell-of-t... The TLDR is SSA erases the structured control flow (like loops), which need to be recovered to support how branching is done on SIMD architectures (enabling/disabling lanes).
Comment linking /blog/2021/09/05/my-personal-hell-of-translating-dxil-to-spir-v-part-1/
on “WebGPU and the Price of Compiling WGSL”Submitted My obsession making native resolution PS2 emulation look good as a story · 3 points
HN discussionThe article about UMR debugging seen on the tinygrad live stream: https://themaister.net/blog/2023/08/20/hardcore-vulkan-debug...
Comment linking /blog/2023/08/20/hardcore-vulkan-debugging-digging-deep-on-linux-amdgpu/
on “Tiny Corp Changes Course yet Again with Plans to Offer AMD Radeon GPUs”Submitted My personal hell of translating DXIL to SPIR-V – finale as a story · 3 points
HN discussionI was just reading about this topic last night on Maister’s Graphics Adventures: https://themaister.net/blog/2025/06 . They created PyroWave, a GPU-accelerated DWT codec in Vulkan compute shaders for performing very low latency game streaming. Very fascinating read, and builds on similar work from their master’s thesis too.
Comment linking /blog/2025/06
on “Video Encoding and Decoding with Vulkan Compute Shaders in FFmpeg”Submitted The State of Window System Integration (WSI) in Vulkan for Retro Emulators as a story · 3 points
HN discussionSubmitted A cute little trick to running classic IIR filters on the GPU as a story · 2 points
HN discussionSubmitted Graphics programming like it's 2000 – An esoteric introduction to PS2 graphics as a story · 2 points
HN discussionSubmitted Conquering FidelityFX FSR4 as a story · 2 points
HN discussionSubmitted Vulkan video shenanigans with RADV and FFmpeg as a story · 2 points
HN discussionSubmitted Compressed GPU Texture Formats as a story · 2 points
HN discussionSubmitted Compressed GPU texture formats – a review and compute shader decoders – part 1 as a story · 2 points
HN discussionSubmitted My side quest measuring input latency with VK_EXT_present_timing as a story · 1 points
HN discussionSubmitted Measuring Input Latency with VK_EXT_present_timing as a story · 1 points
HN discussionSubmitted Emulating Old Junk from Yesteryear as a story · 1 points
HN discussionSubmitted Walking backwards into the future – A look at descriptor heap in Granite as a story · 1 points
HN discussion