Pulled by the GPU memory fetch logic into the pre-vertex-shader cache to be made available to the vertex shader.
I don’t know this for sure, but AFAIK nowhere are we told that it won’t be. Enable the attribute and set the pointer, and it’ll probably fetched.
It’s possible the driver is doing some “smart stuff” here selectively (or totally) ignoring your enables based on the attributes actually referenced in the vertex shader, but I doubt it, and past experience doesn’t support that conclusion.
Though if we could count on that, why wouldn’t we just enable all of the vertex attributes at program startup, always leave them enabled, and only set the pointers for batches? Less GL calls, right? Then what’s the purpose of the enables again?
So I don’t know for sure, but it’s an educated guess.
[quote]And of course, if your shader “does” reference an attribute and you “don’t” populate/enable it to send it down, that can cause problems as well.
That is what latched attributes are there for. Using glVertexAttribXXX() you can provide some default value for attributes that you don’t have per-vertex. [/QUOTE]
Yeah, good point.