Quick answer: Unity Shader Graph keyword default state changes triggering full shader recompile? Cache hashes the default value - keep defaults stable; switch via local keywords at runtime.

Changing a keyword default from off to on rebuilds the entire variant tree. Edit times balloon.

Keep defaults stable

Author the shader with the most-common default state. Switch other states via local keywords at runtime; cache stays valid.

Or use precompiled variant collection

Ship a ShaderVariantCollection that includes both states. Editor edits to defaults are recompiles; collection is stable.

Profile compile time

Window > Analysis > Shader Profiler. Compile time per shader visible; spike on a graph indicates cache miss.

“Shader cache hashes more than you think. Stable inputs = stable cache.”

Document the convention: 'keyword defaults are stable; runtime state is local-keyword'. The discipline saves compile time over a project's life.

Related reading