Validates graph against §60's IR rules and §85, and returns everything a
consumer needs to bind or emit it — see ShaderGraphAnalysis.
Throws a RangeError on the first violation: out-of-range or forward
references, a type rule broken, an attribute the domain does not have, a
screen graph with a positionOffset, a texture reachable from
positionOffset (the MVP emits displacement in the vertex stage, where
implicit-derivative sampling does not exist), a non-vec4color, or the
two resource caps (MAX_SHADER_GRAPH_NODES,
MAX_SHADER_GRAPH_TEXTURES).
Pure, deterministic, allocation-light; NodeMaterial runs it at
construction (§85's setup-time stance — a backend never validates inside a
frame, §61), and validateEffectRenderPass runs it for a §70 graph effect.
Validates
graphagainst §60's IR rules and §85, and returns everything a consumer needs to bind or emit it — see ShaderGraphAnalysis.Throws a
RangeErroron the first violation: out-of-range or forward references, a type rule broken, an attribute the domain does not have, a screen graph with apositionOffset, a texture reachable frompositionOffset(the MVP emits displacement in the vertex stage, where implicit-derivative sampling does not exist), a non-vec4color, or the two resource caps (MAX_SHADER_GRAPH_NODES, MAX_SHADER_GRAPH_TEXTURES).Pure, deterministic, allocation-light;
NodeMaterialruns it at construction (§85's setup-time stance — a backend never validates inside a frame, §61), andvalidateEffectRenderPassruns it for a §70 graph effect.