diff options
author | Brian Paul <brianp@vmware.com> | 2011-03-11 09:25:21 -0700 |
---|---|---|
committer | Brian Paul <brianp@vmware.com> | 2011-03-11 09:25:21 -0700 |
commit | 4293a12c7f0d4fd7ac3a278570f3fe55fc4433a6 (patch) | |
tree | 8cd88b51eac57b8fadaf41e0c563439ad15677c9 /src/mesa | |
parent | a4a5d7e0dd0fb8888ab939e209b229e0f78139f4 (diff) |
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.
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/main/bufferobj.c | 1 | ||||
-rw-r--r-- | src/mesa/main/queryobj.c | 1 | ||||
-rw-r--r-- | src/mesa/main/shaderapi.c | 3 |
3 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/main/bufferobj.c b/src/mesa/main/bufferobj.c index 44072fbc50..3343bb2f40 100644 --- a/src/mesa/main/bufferobj.c +++ b/src/mesa/main/bufferobj.c @@ -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)"); diff --git a/src/mesa/main/queryobj.c b/src/mesa/main/queryobj.c index fa35c6ce58..e9cf5f64d0 100644 --- a/src/mesa/main/queryobj.c +++ b/src/mesa/main/queryobj.c @@ -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); diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 11b0f884fa..6650613d28 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -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); } } |