quentindanjou a day ago

I understood everything up to

> The debug flow I propose with RenderDoc will rely on a lot of shader replacements and roundtrips via SPIRV-Cross’ GLSL backend, so Vulkan GLSL is the appropriate language to start with.

Where, as someone who never did GPU programming, I feel like the author was explaining GPU programming to people who already know GPU programming.

  • bsder a day ago

    > Vulkan GLSL is the appropriate language to start with.

    GLSL is ABSOLUTELY NOT an appropriate language to start with anymore for a huge number of reasons, and I dearly wish people would quit using it for tutorials.

    Anyone trying to get into GPU programming is going to be much, much more familiar programming in Slang which is effectively HLSL plus some stuff and HLSL is superficially like C++. As a bonus, you are learning a shader language actually used on Windows.

    • fulafel a day ago

      The caveats: Slang is a transpiled language so you're putting in extra abstraction layers, and there's a difference between what people commonly use for GPU programming in games/graphics vs general compute apps. For example people on AMD chips seem to be gravitating to Vulkan for LLM stuff now and Slang/HLSL are not involved.

      • bsder a day ago

        Slang compiles directly to SPIR-V which is now directly supported by both DirectX (as of Shader Model 7) and Vulkan (from the very beginning). Where is the transpilation or abstraction?

        > For example people on AMD chips seem to be gravitating to Vulkan for LLM stuff now and Slang/HLSL are not involved.

        You seem to be confusing different layers of the graphics stack. The SDK operates on the host CPU but the GPU needs something else. For Windows, that was DirectX (CPU) with HLSL compiled to DXIL (GPU). For Linux/Android, that was Vulkan (CPU) with GLSL compiled to SPIR-V (GPU).

        As of now, those are DirectX with (HLSL or Slang) to SPIR-V and Vulkan with Slang to SPIR-V.

        Microsoft announcement of support for SPIR-V in SM7: https://devblogs.microsoft.com/directx/directx-adopting-spir...

        Vulkan announcement of Slang as supported shading language: https://www.khronos.org/news/press/khronos-group-launches-sl... . You can also see it in the fact that the Vulkan examples now all have slang shaders as well.

        The biggest reason to quit using GLSL is simply that development of it occurs at a snail's pace relative to the others because Microsoft and NVIDIA pour so much resource at HLSL and Slang, respectively.

        • fulafel 16 hours ago

          Ok, I had the wrong idea (or out of date?) about Slang, thanks for the correction.

  • wrs a day ago

    This seems to be some thoughts about an improved way to teach GPU programming to people who don't know it, so the audience for this is people who already do.

codyb a day ago

Thanks for writing this! I'm just getting into futzing with my Jetson Nano and it indeed is an entirely different space.

Excited to get into a bit and am bookmarking this guide for when I've got my basic setup going.

amelius a day ago

(as opposed to graphics-first)