Here's the code used to configure OpenGL to get texture coordinates, colors and vertex data from our arrays
glColorPointer(..., vertexCache + 2);
glVertexPointer(..., vertexCache + 3);
It's called from InitVertexCache() on the flusher thread and it's currently done only once per application. That is, the initialization changes the state of the *current* OpenGL context (NSOpenGLContext on Mac) only and the state isn't shared across multiple NSOpenGLContexts.
The problem becomes visible in dual-screen environment where we instantiate separate off-screen NSOpenGLContext for each screen (see CGLGraphicsConfig.m).