Quick answer: Project Settings → Platforms → Targeted RHIs: include the target. For PC, both DX11 and DX12. Recook after toggle.

A packaged Windows build runs fine on DX12 but renders pink on DX11 systems. Shaders weren’t cooked for DX11 path.

Targeted RHIs

Project Settings → Platforms → Windows → Targeted RHIs:

Toggle both if you ship broadly. Each RHI adds cook time and binary size.

Force Cook All Materials

In a partial cook, only referenced materials are processed. For full coverage:

Shader Compilation

Mass shader compile after RHI toggle. Editor menu Window → Project Launcher → new launch profile → cook for target platform. Wait for the swarm to finish.

Verify Cooked Output

After cook, inspect Saved/Cooked/<Platform>/Engine/Shaders. Files for ShaderCache_PC_SM5 and ShaderCache_PC_SM6. Both present = good.

Verifying

Build on a target machine with DX11. Materials render correctly. No pink. Switch to DX12 system; same materials work. Logs show DerivedDataCache hits for both RHIs.

“Cooked shader = compiled at build time. Per RHI per platform. Miss one, get pink.”

For PC shipping, DX12 is now safe to default-only. DX11 is becoming legacy; verify your minimum spec before doubling cook time.