Skip to content

shader-clippy blog

One post per rule. Each post explains the GPU mechanism behind a lint warning in enough depth that you could derive the rule yourself.

The target reader is a graphics engineer who ships shaders to production and has not profiled them in a while. Posts assume familiarity with HLSL and shader stages.

v0.5.0 launch series — category overviews

The v0.5.0 launch shipped eight category overviews plus a preface essay. Each overview walks one rule-pack at GPU-mechanism level.

DateCategoryTitle
2026-05-01prefaceWhy your HLSL is slower than it has to be
2026-05-01mathWhere the cycles go: math intrinsics on modern GPUs
2026-05-01workgroupYour groupshared array is bank-conflicting on RDNA
2026-05-01control-flowDivergent control flow is the silent killer of your shader
2026-05-01bindingsWhere root signatures and descriptor heaps quietly cost you
2026-05-01textureTexture sampling is doing more work than your shader admits
2026-05-01mesh + dxrMesh shaders + DXR
2026-05-01wave + helper-laneWave intrinsics and helper-lane traps
2026-05-01sm 6.9SM 6.9: shader execution reordering, cooperative vectors, and the new ray-tracing primitives

Per-rule deep dives

Per-rule posts (one per shipped rule) are grouped by category below. Each entry links to a stub or full post. Stubs are placeholder scaffolds queued for v1.0.x patch-release fill-in per ADR 0018 §5 criterion #6.

bindings (26 rules)
blackwell (1 rule)
control-flow (21 rules)
cooperative-vector (6 rules)
dxr (10 rules)
linalg (2 rules)
long-vectors (4 rules)
math (31 rules)
memory (5 rules)
mesh (9 rules)
misc (3 rules)
opacity-micromaps (3 rules)
packed-math (6 rules)
rdna4 (3 rules)
sampler-feedback (3 rules)
saturate-redundancy (5 rules)
ser (12 rules)
sm6_10 (4 rules)
texture (13 rules)
vrs (4 rules)
wave-helper-lane (7 rules)
work-graphs (6 rules)
workgroup (20 rules)
xe2 (1 rule)

Conventions for contributors

Every shipped rule has a corresponding docs/blog/<rule-id>.md post. Stubs are scaffolds, not authoritative content; the rule page at docs/rules/<rule-id>.md is canonical. Promote a stub to a full post by replacing the referral sections with prose written graphics-engineer to graphics-engineer. Target length 800-1500 words. License CC-BY-4.0.

See pow-const-squared for a reference full-length post.

© 2026 NelCit — Apache-2.0 (code), CC-BY-4.0 (docs).