<type name="DEBUGPROC" size="4" pointer="true"/>
<function name="NewList" deprecated="3.1"
- marshal_call_after="if (COMPAT) ctx->GLThread.inside_dlist = true;">
+ marshal_call_after="if (COMPAT) ctx->GLThread.ListMode = mode;">
<param name="list" type="GLuint"/>
<param name="mode" type="GLenum"/>
<glx sop="101"/>
</function>
<function name="EndList" deprecated="3.1"
- marshal_call_after="if (COMPAT) ctx->GLThread.inside_dlist = false;">
+ marshal_call_after="if (COMPAT) ctx->GLThread.ListMode = 0;">
<glx sop="102"/>
</function>
/** Whether GLThread is enabled. */
bool enabled;
- /** Whether GLThread is inside a display list generation. */
- bool inside_dlist;
+ /** Display lists. */
+ GLenum ListMode; /**< Zero if not inside display list, else list mode. */
/** For L3 cache pinning. */
unsigned pin_thread_counter;
struct glthread_vao *vao = ctx->GLThread.CurrentVAO;
unsigned user_buffer_mask = vao->UserPointerMask & vao->BufferEnabled;
- if (compiled_into_dlist && ctx->GLThread.inside_dlist) {
+ if (compiled_into_dlist && ctx->GLThread.ListMode) {
_mesa_glthread_finish_before(ctx, "DrawArrays");
/* Use the function that's compiled into a display list. */
CALL_DrawArrays(ctx->CurrentServerDispatch, (mode, first, count));
struct glthread_vao *vao = ctx->GLThread.CurrentVAO;
unsigned user_buffer_mask = vao->UserPointerMask & vao->BufferEnabled;
- if (ctx->GLThread.inside_dlist)
+ if (ctx->GLThread.ListMode)
goto sync;
if (draw_count >= 0 &&
unsigned user_buffer_mask = vao->UserPointerMask & vao->BufferEnabled;
bool has_user_indices = vao->CurrentElementBufferName == 0;
- if (compiled_into_dlist && ctx->GLThread.inside_dlist)
+ if (compiled_into_dlist && ctx->GLThread.ListMode)
goto sync;
/* Fast path when nothing needs to be done.
sync:
_mesa_glthread_finish_before(ctx, "DrawElements");
- if (compiled_into_dlist && ctx->GLThread.inside_dlist) {
+ if (compiled_into_dlist && ctx->GLThread.ListMode) {
/* Only use the ones that are compiled into display lists. */
if (basevertex) {
CALL_DrawElementsBaseVertex(ctx->CurrentServerDispatch,
unsigned user_buffer_mask = vao->UserPointerMask & vao->BufferEnabled;
bool has_user_indices = vao->CurrentElementBufferName == 0;
- if (ctx->GLThread.inside_dlist)
+ if (ctx->GLThread.ListMode)
goto sync;
/* Fast path when nothing needs to be done. */