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