Tools & Environment Setup

Compile offline (build step) for release; optionally compile at runtime in debug for hot reload.

4.1 Zero-install options (start here)

Shader Playground (shader-playground.timjones.io) — compile HLSL with DXC/FXC/Slang, view DXIL/SPIR-V/ISA.

Compiler Explorer (godbolt.org) — supports HLSL via DXC; compare compiler versions and flags.

Shadertoy-style HLSL: Shadertoy itself is GLSL, but the math transfers directly (fract→frac, mix→lerp).

4.2 Compilers

Windows SDK (dxc.exe), GitHub releases, Vulkan SDK (includes DXC with SPIR-V) SM 6.x, DXIL & SPIR-V Windows SDK (fxc.exe) D3DCompiler API d3dcompiler.h, D3DCompileFromFile runtime FXC compilation

dxcapi.h, IDxcCompiler3, IDxcUtils runtime DXC compilation Agility SDK NuGet Microsoft.Direct3D.D3D12 newest D3D12 runtime/features without an OS update

4.3 IDEs & debuggers

Visual Studio HLSL compilation via MSBuild (FxCompile items, .hlsl file properties), Graphics Diagnostics (D3D11)

HLSL Tools extension (IntelliSense), Shader languages support, ShaderLab extensions PIX on Windows

Microsoft's D3D12 profiler/debugger: GPU captures, shader debugging, timing captures, occupancy open-source frame debugger for D3D11, D3D12, Vulkan, OpenGL: inspect state, resources, step through shaders

NVIDIA Nsight Graphics, AMD Radeon GPU Profiler / Radeon GPU Analyzer, Intel GPA vendor profilers, ISA inspection

D3D12 Debug Layer / GPU-Based Validation catches API misuse and invalid descriptor access

4.4 Recommended project setup

Compile offline (build step) for release; optionally compile at runtime in debug for hot reload.

MyRenderer/
├── src/            C++ host code
├── shaders/
│   ├── common.hlsli   shared includes (.hlsli = header convention)
│   ├── basic_vs.hlsl
│   ├── basic_ps.hlsl
│   └── blur_cs.hlsl
└── build/          compiled .cso / .spv / .h