xserver-multidpi/glx
Adam Jackson a48dadc98a glx: Reimplement context tags
This would let you do a constant-time context lookup, but if that's your
performance problem you have two problems.  Just use the context's XID
as the tag value instead.

In order to do this, we have to defer destroying a context until it
actually goes unreferenced, as you're allowed to mention a context tag
after you've (ostensibly) destroyed the context, as long as it's still
your current context.  Thus, change DestroyContext to merely mark the
context as dead if it's a current context, and call down to actual
resource destruction (and XID reclamation) in StopUsingContext.

Also, stop trying to delete context state from DrawableGone.  This was
always broken, as GLX does not say that contexts are destroyed when
their drawables are destroyed.  But with the above change to defer
context destruction, this would trigger a server crash on client exit as
we'd free the context state twice.

Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28 12:46:38 -04:00
..
dispatch.h GLX: Changes resulting from changes to Mesa generator scripts / data 2008-12-14 18:58:33 -08:00
extension_string.c GLX/DRI2: add INTEL_swap_event support 2010-01-11 16:17:15 -05:00
extension_string.h GLX/DRI2: add INTEL_swap_event support 2010-01-11 16:17:15 -05:00
glapi.c glx: Fix _glapi_add_dispatch 2011-03-28 12:46:38 -04:00
glapi.h glx: Remove noop dispatch table 2011-03-28 12:46:38 -04:00
glapioffsets.h Move GL/glx on level up now that it's the only thing left under GL. 2008-05-21 13:33:36 -04:00
glapitable.h GLX: Changes resulting from changes to Mesa generator scripts / data 2008-12-14 18:58:33 -08:00
glprocs.h Move GL/glx on level up now that it's the only thing left under GL. 2008-05-21 13:33:36 -04:00
glthread.c glx: unifdef BEOS_THREADS 2011-03-08 13:24:38 -05:00
glthread.h GLX: Support TLS with better portability 2011-03-23 09:11:33 -07:00
glxbyteorder.h Move GL/glx on level up now that it's the only thing left under GL. 2008-05-21 13:33:36 -04:00
glxcmds.c glx: Reimplement context tags 2011-03-28 12:46:38 -04:00
glxcmdsswap.c glx: Work around wrong request lengths sent by mesa 2011-02-15 12:19:59 +01:00
glxcontext.h DRI2: add support for new DRI2 protocol requests 2010-01-11 16:16:35 -05:00
glxdrawable.h DRI2: add support for new DRI2 protocol requests 2010-01-11 16:16:35 -05:00
glxdri.c glx: Factor out glxProbeDriver function. 2011-03-14 13:42:32 -04:00
glxdri2.c glx: Factor out glxProbeDriver function. 2011-03-14 13:42:32 -04:00
glxdricommon.c glx: Use PATH_MAX as size of filename buffer 2011-03-14 13:42:55 -04:00
glxdricommon.h glx: Factor out glxProbeDriver function. 2011-03-14 13:42:32 -04:00
glxdriswrast.c glx: Factor out glxProbeDriver function. 2011-03-14 13:42:32 -04:00
glxext.c glx: Reimplement context tags 2011-03-28 12:46:38 -04:00
glxext.h glx: Fix drawable private leak on destroy 2009-04-13 13:17:53 -04:00
glxscreens.c glx: Remove swap barrier and hyperpipe support 2010-11-30 12:54:47 -05:00
glxscreens.h glx: Remove swap barrier and hyperpipe support 2010-11-30 12:54:47 -05:00
glxserver.h glx: Reimplement context tags 2011-03-28 12:46:38 -04:00
glxutil.h glx: Fix drawable private leak on destroy 2009-04-13 13:17:53 -04:00
indirect_dispatch_swap.c Fix "warning: cast to pointer from integer of different size" 2009-02-04 09:42:02 +10:00
indirect_dispatch.c GLX: Remove a redundant initialization 2010-03-29 09:37:14 -07:00
indirect_dispatch.h glx: Sun compilers now support some gcc __attribute__ values 2010-01-25 11:10:00 -08:00
indirect_program.c Warning fix (GL likes to call strings GLubyte * instead of char *). 2008-12-12 10:37:40 -08:00
indirect_reqsize.c GLX: Make sure the types match for ALIAS in indirect_reqsize.c 2009-06-06 22:24:18 -07:00
indirect_reqsize.h glx: Sun compilers now support some gcc __attribute__ values 2010-01-25 11:10:00 -08:00
indirect_size_get.c glx: Sun compilers now support some gcc __attribute__ values 2010-01-25 11:10:00 -08:00
indirect_size_get.h glx: Sun compilers now support some gcc __attribute__ values 2010-01-25 11:10:00 -08:00
indirect_size.h glx: Sun compilers now support some gcc __attribute__ values 2010-01-25 11:10:00 -08:00
indirect_table.c glx: Remove swap barrier and hyperpipe support 2010-11-30 12:54:47 -05:00
indirect_table.h Move GL/glx on level up now that it's the only thing left under GL. 2008-05-21 13:33:36 -04:00
indirect_texture_compression.c Fix "possibly uninitialized" warnings in glx 2009-10-08 13:36:44 +11:00
indirect_util.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
indirect_util.h Move GL/glx on level up now that it's the only thing left under GL. 2008-05-21 13:33:36 -04:00
Makefile.am glx: Flatten -DXFree86Server 2011-03-28 12:46:38 -04:00
render2.c Warning fix: Remove dead glXDisp{,Swap}_DrawArraysEXT definitions. 2008-12-12 10:37:40 -08:00
render2swap.c Warning fix: Remove dead glXDisp{,Swap}_DrawArraysEXT definitions. 2008-12-12 10:37:40 -08:00
renderpix.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
renderpixswap.c Remove #define NEED_EVENTS and NEED_REPLIES 2008-12-12 11:43:32 +10:00
rensize.c glx: switch to byte counting functions 2009-07-14 10:13:44 +10:00
single2.c Remove more superfluous if(p!=NULL) checks around free(p). 2010-11-11 08:30:26 +10:00
single2swap.c Replace X-allocation functions with their C89 counterparts 2010-05-13 00:22:37 +07:00
singlepix.c GLX: note the implicit flushes with ReadPixels in indirect contexts. 2009-06-24 10:41:47 +10:00
singlepixswap.c GLX: note the implicit flushes with ReadPixels in indirect contexts. 2009-06-24 10:41:47 +10:00
singlesize.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
singlesize.h Update to SGI FreeB 2.0. 2008-09-19 12:02:28 -04:00
swap_interval.c DRI2: add support for new DRI2 protocol requests 2010-01-11 16:16:35 -05:00
unpack.h glx: warning fixes 2010-12-31 12:52:24 +00:00
xfont.c glx: validate request lengths 2011-01-10 15:31:30 +01:00