diff options
Diffstat (limited to 'src/mesa/main/glthread_varray.c')
-rw-r--r-- | src/mesa/main/glthread_varray.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mesa/main/glthread_varray.c b/src/mesa/main/glthread_varray.c index 9e45aa28755..fbd08f41e5a 100644 --- a/src/mesa/main/glthread_varray.c +++ b/src/mesa/main/glthread_varray.c @@ -158,10 +158,13 @@ _mesa_glthread_ClientState(struct gl_context *ctx, GLuint *vaobj, } void -_mesa_glthread_AttribPointer(struct gl_context *ctx) +_mesa_glthread_AttribPointer(struct gl_context *ctx, gl_vert_attrib attrib) { struct glthread_state *glthread = &ctx->GLThread; + struct glthread_vao *vao = glthread->CurrentVAO; - if (glthread->CurrentArrayBufferName == 0) - glthread->CurrentVAO->HasUserPointer = true; + if (glthread->CurrentArrayBufferName != 0) + vao->UserPointerMask &= ~(1u << attrib); + else + vao->UserPointerMask |= 1u << attrib; } |