Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:linux4humans:cryptocurrencies
Mesa-7.8-gles-branch
commit-4ebf07a.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File commit-4ebf07a.diff of Package Mesa-7.8-gles-branch
commit 4ebf07a426771b62123e5fcb5a8be0de24037af1 Author: Kristian Høgsberg <krh@bitplanet.net> Date: Mon Sep 13 08:39:42 2010 -0400 glx: Don't destroy DRI2 drawables for legacy glx drawables For GLX 1.3 drawables, we can destroy the DRI2 drawable when the GLX drawable is destroyed. However, for legacy drawables, there os no good way of knowing when the application is done with it, so we just let the DRI2 drawable linger on the server. The server will destroy the DRI2 drawable when it destroys the X drawable or the client exits anyway. https://bugs.freedesktop.org/show_bug.cgi?id=30109 diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c index e38a40c..8247588 100644 --- a/src/glx/dri2_glx.c +++ b/src/glx/dri2_glx.c @@ -210,7 +210,17 @@ dri2DestroyDrawable(__GLXDRIdrawable *base) __glxHashDelete(pdp->dri2Hash, pdraw->base.xDrawable); (*psc->core->destroyDrawable) (pdraw->driDrawable); - DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable); + + /* If it's a GLX 1.3 drawables, we can destroy the DRI2 drawable + * now, as the application explicitly asked to destroy the GLX + * drawable. Otherwise, for legacy drawables, we let the DRI2 + * drawable linger on the server, since there's no good way of + * knowing when the application is done with it. The server will + * destroy the DRI2 drawable when it destroys the X drawable or the + * client exits anyway. */ + if (pdraw->base.xDrawable != pdraw->base.drawable) + DRI2DestroyDrawable(psc->base.dpy, pdraw->base.xDrawable); + Xfree(pdraw); } diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c index 1759e57..60b999f 100644 --- a/src/mesa/vbo/vbo_exec_array.c +++ b/src/mesa/vbo/vbo_exec_array.c @@ -490,6 +490,8 @@ vbo_exec_DrawArrays(GLenum mode, GLint start, GLsizei count) if (!_mesa_validate_DrawArrays( ctx, mode, start, count )) return; + vbo_exec_FlushVertices_internal( ctx, GL_FALSE ); + FLUSH_CURRENT( ctx, 0 ); if (!_mesa_valid_to_render(ctx, "glDrawArrays")) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor