mesa: protect driver.flush() with FLUSH_CURRENT
Need to do this to ensure vbo code unmaps its buffers before calling the driver, which may be sitting on top of a memory manager which objects to firing commands from a mapped buffer.
This commit is contained in:
parent
c1a3b85280
commit
009749b4a8
|
@ -187,7 +187,7 @@ GLfloat _mesa_ubyte_to_float_color_tab[256];
|
|||
void
|
||||
_mesa_notifySwapBuffers(__GLcontext *ctx)
|
||||
{
|
||||
FLUSH_VERTICES( ctx, 0 );
|
||||
FLUSH_CURRENT( ctx, 0 );
|
||||
if (ctx->Driver.Flush) {
|
||||
ctx->Driver.Flush(ctx);
|
||||
}
|
||||
|
@ -1514,6 +1514,7 @@ _mesa_Flush(void)
|
|||
{
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx);
|
||||
FLUSH_CURRENT( ctx, 0 );
|
||||
if (ctx->Driver.Flush) {
|
||||
ctx->Driver.Flush(ctx);
|
||||
}
|
||||
|
|
|
@ -692,7 +692,7 @@ _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer)
|
|||
return;
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
|
||||
FLUSH_CURRENT(ctx, _NEW_BUFFERS);
|
||||
/* The above doesn't fully flush the drivers in the way that a
|
||||
* glFlush does, but that is required here:
|
||||
*/
|
||||
|
@ -1187,8 +1187,7 @@ _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer)
|
|||
return;
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
|
||||
|
||||
FLUSH_CURRENT(ctx, _NEW_BUFFERS);
|
||||
if (ctx->Driver.Flush) {
|
||||
ctx->Driver.Flush(ctx);
|
||||
}
|
||||
|
@ -1269,7 +1268,7 @@ _mesa_DeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers)
|
|||
GET_CURRENT_CONTEXT(ctx);
|
||||
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
|
||||
FLUSH_CURRENT(ctx, _NEW_BUFFERS);
|
||||
/* The above doesn't fully flush the drivers in the way that a
|
||||
* glFlush does, but that is required here:
|
||||
*/
|
||||
|
@ -1507,7 +1506,7 @@ framebuffer_texture(GLcontext *ctx, const char *caller, GLenum target,
|
|||
}
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
|
||||
FLUSH_CURRENT(ctx, _NEW_BUFFERS);
|
||||
/* The above doesn't fully flush the drivers in the way that a
|
||||
* glFlush does, but that is required here:
|
||||
*/
|
||||
|
@ -1688,7 +1687,7 @@ _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,
|
|||
}
|
||||
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
|
||||
FLUSH_CURRENT(ctx, _NEW_BUFFERS);
|
||||
/* The above doesn't fully flush the drivers in the way that a
|
||||
* glFlush does, but that is required here:
|
||||
*/
|
||||
|
@ -1769,7 +1768,7 @@ _mesa_GetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment,
|
|||
}
|
||||
}
|
||||
|
||||
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
|
||||
FLUSH_CURRENT(ctx, _NEW_BUFFERS);
|
||||
/* The above doesn't fully flush the drivers in the way that a
|
||||
* glFlush does, but that is required here:
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue