summaryrefslogtreecommitdiff
path: root/src/glx/dri2.c
AgeCommit message (Collapse)Author
2010-09-22glx: decouple dri2.c and GLX, fixing Gallium EGL and d3d1x buildLuca Barbieri
The Gallium EGL state tracker reuses dri2.c but not the GLX code. Currently there is a bit of code in dri2.c that is incorrectly tied to GLX: instead, make it call an helper that both GLX and Gallium EGL implement, like dri2InvalidateBuffers. This avoids a link error complaining that dri2GetGlxDrawableFromXDrawableId is undefined. Note that we might want to move the whole event translation elsewhere, and probably stop using non-XCB DRI2 altogether, but this seems to be the minimal fix.
2010-09-08glx: Ignore DRI2 event for drawables we've destroyedKristian Høgsberg
Since we now actually destroy GLX drawables, we get into situations where we get events for drawables that no longer exist. Just ignore the event in that case.
2010-09-08glx: Drop broken drawable garbage collectionKristian Høgsberg
Doesn't work for pixmaps, was looking up the GLX XID and was never thread safe. Instead, just destroy the client side structures when the drawable is no long current for a context.
2010-07-28glx: Rename __GLXcontext and __GLXdisplayPrivate to struct types.Kristian Høgsberg
2010-07-28Avoid compiler warning for unused glx_dpy variable.Carl Worth
My earlier attempt to eliminate this warning (c0ca2bfb2ad8c) was invalid as it removed the variable declaration. Jerome correctly reverted that (600c85efdb0ff) since the variable is used when X_DRI2SwapBuffers is defined. Here, instead of removing the declaration, we move it to inside the correct #ifdef.
2010-07-22glx: Use _Xglobal_lock for protecting extension display listKristian Høgsberg
Avoids double locking glXLock in the X wire to event handlers.
2010-07-21Revert "dri2: Remove an unused variable."Jerome Glisse
glx_info is used if X_DRI2SwapBuffers is defined This reverts commit c0ca2bfb2ad8cf7fb9d756b5ae52cb77236ff605.
2010-07-21dri2: Remove an unused variable.Carl Worth
To quiet a compiler warning.
2010-07-19glx: Fix drawable lookup in DRI2 event handlerKristian Høgsberg
DRI2 events are sent to the X drawable ID used to create the DRI2 drawable, not the GLX drawable ID. So when an event comes in, we need to look up the __GLXDRIdrawable by its X drawable ID, which needs a new hash table.
2010-07-14dri2: Track event mask in client code.Nick Bowler
When direct rendering is being used, DRI2 BufferSwapComplete events are sent unconditionally to clients, even if they haven't been requested. This causes error messages to be printed by every freeglut application of the form freeglut (./gears): Unknown X event type: 104 and might confuse other clients. This is a fixed up version of the patch by Jesse Barnes, which drops BufferSwapComplete events if they are not requested by clients. Fixes fdo bug 27962. Signed-off-by: Nick Bowler <nbowler@draconx.ca> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2010-07-01mesa: Purge macros NEED_EVENTS and NEED_REPLIESFernando Carrijo
Signed-off-by: Fernando Carrijo <fcarrijo@yahoo.com.br> Signed-off-by: Brian Paul <brianp@vmware.com>
2010-04-13DRI2: report swap events correctly in direct rendered caseJesse Barnes
In the direct rendered case, we need to convert DRI2 swap complete events to GLX events for the client to consume. This path had what looks like a stray "& 0x75" from some earlier debugging that prevented clients from seeing the right event code.
2010-04-04Update to final names from GLX_INTEL_swap_event specIan Romanick
Fixes bug #27454.
2010-03-22glx: Suppress BadDrawable from DRI2CopyRegionKristian Høgsberg
This can happen when an X window is destroyed behind our back. We use DRI2CopyRegion behind the scenes in many places (like flushing the fake front to the real front) so we have to ignore X errors triggered in that case. The glean test cases trigger this consistently as they don't destroy the GLX drawable nicely, they just destroy the X window.
2010-02-16glx: Fix a couple of warningsKristian Høgsberg
2010-02-16glx: Only register wire handlers for the events the server supportsKristian Høgsberg
2010-02-16dri2: Event driven buffer validation.Francisco Jerez
When a buffer invalidation event is received from the X server, the "invalidate" hook of the DRI2 flush extension is executed: A generic implementation (dri2InvalidateDrawable) is provided that just bumps the "pStamp" sequence number in __DRIdrawableRec. For old servers not supporting buffer invalidation events, the invalidate hook will be called before flushing the fake front/back buffer (that's typically once per frame -- not a lot worse than the situation we were in before). No effort has been made on preserving backwards compatibility with version 2 of the flush extension, but I think it's acceptable because AFAIK no released stack is making use of it. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2010-02-09Retire miniglx and move the actual glx code up to src/glxKristian Høgsberg