mesa: implement DEBUG_ALWAYS_FLUSH debug option
This flag has been around for a while but it wasn't actually used anywhere. Now, setting this flag causes a glFlush() to be issued after each drawing call (including glBegin/End, glDrawElements, glDrawArrays, glDrawPixels, glCopyPixels and glBitmap).
This commit is contained in:
@@ -180,6 +180,10 @@ _mesa_DrawPixels( GLsizei width, GLsizei height,
|
||||
|
||||
end:
|
||||
_mesa_set_vp_override(ctx, GL_FALSE);
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -280,6 +284,10 @@ _mesa_CopyPixels( GLint srcx, GLint srcy, GLsizei width, GLsizei height,
|
||||
|
||||
end:
|
||||
_mesa_set_vp_override(ctx, GL_FALSE);
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -354,6 +362,10 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
|
||||
/* update raster position */
|
||||
ctx->Current.RasterPos[0] += xmove;
|
||||
ctx->Current.RasterPos[1] += ymove;
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -862,6 +862,10 @@ static void GLAPIENTRY vbo_exec_End( void )
|
||||
}
|
||||
else
|
||||
_mesa_error( ctx, GL_INVALID_OPERATION, "glEnd" );
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -614,6 +614,10 @@ vbo_draw_arrays(struct gl_context *ctx, GLenum mode, GLint start,
|
||||
GL_TRUE, start, start + count - 1,
|
||||
NULL);
|
||||
}
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -803,6 +807,10 @@ vbo_validated_drawrangeelements(struct gl_context *ctx, GLenum mode,
|
||||
check_buffers_are_unmapped(exec->array.inputs);
|
||||
vbo->draw_prims( ctx, prim, 1, &ib,
|
||||
index_bounds_valid, start, end, NULL );
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1127,6 +1135,10 @@ vbo_validated_multidrawelements(struct gl_context *ctx, GLenum mode,
|
||||
}
|
||||
|
||||
free(prim);
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1201,6 +1213,10 @@ vbo_draw_transform_feedback(struct gl_context *ctx, GLenum mode,
|
||||
check_buffers_are_unmapped(exec->array.inputs);
|
||||
vbo->draw_prims(ctx, prim, 1, NULL,
|
||||
GL_TRUE, 0, 0, obj);
|
||||
|
||||
if (MESA_DEBUG_FLAGS & DEBUG_ALWAYS_FLUSH) {
|
||||
_mesa_flush(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user