util_queue_destroy(&glthread->queue);
return;
}
+
+ _mesa_glthread_reset_vao(&glthread->DefaultVAO);
glthread->CurrentVAO = &glthread->DefaultVAO;
ctx->MarshalExec = _mesa_create_marshal_table(ctx);
glthread->enabled = true;
glthread->stats.queue = &glthread->queue;
+
+ glthread->SupportsBufferUploads =
+ ctx->Const.BufferCreateMapUnsynchronizedThreadSafe &&
+ ctx->Const.AllowMappedBuffersDuringExecution;
+
+ /* If the draw start index is non-zero, glthread can upload to offset 0,
+ * which means the attrib offset has to be -(first * stride).
+ * So require signed vertex buffer offsets.
+ */
+ glthread->SupportsNonVBOUploads = glthread->SupportsBufferUploads &&
+ ctx->Const.VertexBufferOffsetIsInt32;
+
ctx->CurrentClientDispatch = ctx->MarshalExec;
/* Execute the thread initialization function in the thread. */