mesa: call FLUSH_VERTICES() before deleting shaders, buffers, query objects
Need to flush rendering (or at least indicate that the rug might be getting pulled out from underneath us) when a shader, buffer object or query object is about to be deleted. Also, this helps to tell the VBO module to unmap its current vertex buffer.
This commit is contained in:
@@ -749,6 +749,7 @@ _mesa_DeleteBuffersARB(GLsizei n, const GLuint *ids)
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
GLsizei i;
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
|
||||
if (n < 0) {
|
||||
_mesa_error(ctx, GL_INVALID_VALUE, "glDeleteBuffersARB(n)");
|
||||
|
||||
@@ -218,6 +218,7 @@ _mesa_DeleteQueriesARB(GLsizei n, const GLuint *ids)
|
||||
GLint i;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
ASSERT_OUTSIDE_BEGIN_END(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
|
||||
if (MESA_VERBOSE & VERBOSE_API)
|
||||
_mesa_debug(ctx, "glDeleeteQueries(%d)\n", n);
|
||||
|
||||
@@ -1236,6 +1236,7 @@ _mesa_DeleteObjectARB(GLhandleARB obj)
|
||||
|
||||
if (obj) {
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
if (is_program(ctx, obj)) {
|
||||
delete_shader_program(ctx, obj);
|
||||
}
|
||||
@@ -1254,6 +1255,7 @@ _mesa_DeleteProgram(GLuint name)
|
||||
{
|
||||
if (name) {
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
delete_shader_program(ctx, name);
|
||||
}
|
||||
}
|
||||
@@ -1264,6 +1266,7 @@ _mesa_DeleteShader(GLuint name)
|
||||
{
|
||||
if (name) {
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
FLUSH_VERTICES(ctx, 0);
|
||||
delete_shader(ctx, name);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user