Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    H

    Hans-Kristian Arntzen (Themaister)

    themaister.net · Personal blog · on HN since 2013

    Hans-Kristian Arntzen is a graphics driver and Vulkan developer who writes technical posts on GPU programming, shader translation, and debugging.

    Visit blogRSSHN submissions
    Systems & PerformanceProgrammingHardware & Electronics
    What HN says

    HN commenters cite his DXIL to SPIR-V posts to argue shader IRs are flawed, and link his Vulkan and AMD GPU debugging work.

    Stats for nerds
    25HN people shared it
    27linked in comments
    959story points
    Mar 2026last shared
    2013people per year2026

    Top posts on HN

    1. 1
      I designed my own fast game streaming video codec – PyroWave
      1 person · 432 points · first shared 2025 · 134 comments on HN
    2. 2
      Playstation 2 GS emulation – the final frontier of Vulkan compute emulation
      1 person · 222 points · first shared 2024 · 65 comments on HN
    3. 3
      Pseudo-bandlimited pixel art filtering in 3D: A mathematical derivation
      1 person · 163 points · first shared 2018 · 15 comments on HN
    4. 4
      A case for learning GPU programming with a compute-first mindset
      3 people · 69 points · first shared 2025 · 11 comments on HN
    5. 5
      My personal hell of translating DXIL to SPIR-V – part 3
      3 people · 36 points · first shared 2021 · 7 comments on HN
    6. 6
      Graphics Programming like it's 2000: An introduction to Playstation 2 graphics
      2 people · 7 points · first shared 2025 · Discussion on HN
    7. 7
      Hardcore Vulkan Debugging – Digging Deep on Linux and Amdgpu
      3 people · 5 points · first shared 2023 · Discussion on HN
    8. 8
      Compressed GPU texture formats – a review and compute shader decoders – part 1
      2 people · 4 points · first shared 2020 · Discussion on HN
    9. 9
      Conquering FidelityFX FSR4
      2 people · 3 points · first shared 2025 · Discussion on HN
    10. 10
      Vulkan video shenanigans with RADV and FFmpeg
      2 people · 3 points · first shared 2023 · Discussion on HN

    What HN people wrote when they linked it

    • raphlinusSep 2024

      Faith 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 the semantics, and also make it safe (see the uniformity analysis [7] in particular, which is a very "compiler" approach to a GPU-specific problem). Both Tint and naga projects are open source, with lots of high quality discussion in the issue trackers.

      Shader languages suck, and we really need a good one. Promising approaches are Circle [8] (which is C++ based, very advanced but not open source), and Slang [9] (an evolution of HLSL). The Vcc work (also related to [4]) is worth studying.

      Best of luck! This is a fascinating, if frustrating, space, and there's lots of room to improve things.

      [1]: https://www.gfxstrand.net/faith/blog/

      [1a]: https://www.collabora.com/news-and-blog/blog/2024/04/25/re-converging-control-flow-on-nvidia-gpus/

      [2]: https://mastodon.gamedev.place/@gfxstrand

      [3]: https://kvark.github.io/spirv/2021/05/01/spirv-horrors.html

      [4]: https://xol.io/blah/the-trouble-with-spirv/

      [5]: https://themaister.net/blog/2022/08/21/my-personal-hell-of-translating-dxil-to-spir-v-finale/

      [6]: https://github.com/gpuweb/gpuweb

      [7]:…

    • MindSpunkJul 2025

      DXIL 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 intermediate representation because parsing it is so bloody difficult nobody could actually do anything with it. DXIL was, and still is, functionally opaque bytes. You can't introspect it, you can't modify it or do anything of use with it. SPIR-V is dead-simple to parse and has an array of tools built around it because it's so easy to work with.

      I don't really see how the OpenCL history is relevant to Vulkan either. Khronos losing the OpenCL game to Nvidia, certainly no thanks to Nvidia's sabotage either, doesn't change that SPIR-V is a much more successful format.

      [0] https://themaister.net/blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/

    • g0bMay 2022

      This 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 weird, but I plan for the rest of the series to continue with SPIR-V as some sort of central reference point.

      It's fair to say DXIL suffers from this class of troubles too, there's a series themaister where he describes the awfulness of the story over there, but I don't work with DX and I wanted to make as few comments on that as possible to avoid saying something wrong and unverified.

      https://themaister.net/blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/

    • jsheardSep 2024

      In 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-translating-dxil-to-spir-v-part-1/

      https://themaister.net/blog/2021/10/03/my-personal-hell-of-translating-dxil-to-spir-v-part-2/

      https://themaister.net/blog/2021/11/07/my-personal-hell-of-translating-dxil-to-spir-v-part-3/

      https://themaister.net/blog/2022/04/11/my-personal-hell-of-translating-dxil-to-spir-v-part-4/

      https://themaister.net/blog/2022/04/24/my-personal-hell-of-translating-dxil-to-spir-v-part-5/

    • shmerlSep 2025

      You 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 shared effort. Everything else is simply irrelevant in result even if it could be better in some ways.

    • torginusOct 2025

      SPIR-V is also a bad format for shaders (according to shader compiler devs):

      https://themaister.net/blog/2021/09/05/my-personal-hell-of-translating-dxil-to-spir-v-part-1/

      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).

    Related

    Josh Barczakjoshbarczak.com18 people

    OpenGL Is Broken

    Josh Barczak
    Personal · last shared 2025
    Adam Sawickiasawicki.info15 people

    Hello World Under the Microscope

    Adam Sawicki
    Personal · last shared 2026
    Dzmitry Malyshaukvark.github.io17 people

    NixOS on Framework Laptop

    Dzmitry Malyshau
    Personal · last shared 2026
    Philippe Gaultiergaultier.github.io23 people

    You've just inherited a legacy C++ codebase, now what?

    Philippe Gaultier
    Personal · last shared 2026
    The Incredible Holkblog.theincredibleholk.org23 people

    Booting to Rust

    The Incredible Holk
    Personal · last shared 2022
    Forrest Smithforrestthewoods.com57 people

    Simpson’s Paradox (2016)

    Forrest Smith
    Personal · last shared 2026
    Alan Zucconialanzucconi.com53 people

    The challenging task of sorting colours

    Alan Zucconi
    Personal · last shared 2026
    Martin Gräßlinblog.martin-graesslin.com60 people

    Mir in Kubuntu

    Martin Gräßlin
    Personal · last shared 2025