Vertex layouts for a shaded pipeline, in slot order: position always,
then normals if the variant shades with them, then uvs if it samples.
Positional slots with a single counter on both sides —
unlitVertexBufferLayouts' rule, restated because the failure mode is the
same: get the order wrong and a pipeline reads normals as uvs, which
validates cleanly and draws garbage. Shared by the lit and standard families,
whose vertex inputs are identical (§59 adds uniforms, not streams).
Vertex layouts for a shaded pipeline, in slot order: position always, then normals if the variant shades with them, then uvs if it samples.
Positional slots with a single counter on both sides —
unlitVertexBufferLayouts' rule, restated because the failure mode is the same: get the order wrong and a pipeline reads normals as uvs, which validates cleanly and draws garbage. Shared by the lit and standard families, whose vertex inputs are identical (§59 adds uniforms, not streams).