| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
DRI2 will throw BadRequest for this when the client is not local, but
DRI2 is an implementation detail and not something callers should have
to know about. Silently swallow errors in this case, and just propagate
the failure through DRI2Connect's return code.
Note: This is a candidate for the stable release branches.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=28125
Signed-off-by: Christopher James Halse Rogers <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
| |
Create a new GLX drawable struct to track client related info, and add a
wrap counter to it drawable and track it as we receive events. This
allows us to support the full 64 bits of the event structure we pass to
the client even though the server only gives us a 32 bit count.
Reviewed-by: Michel Dänzer <[email protected]>
Reviewed-by: Jeremy Huddleston <[email protected]>
Signed-off-by: Jesse Barnes <[email protected]>
|
|
|
|
|
|
|
|
| |
Use the new swap event type so we get valid SBC values.
Reviewed-by: Ian Romanick <[email protected]>
Reviewed-by: Jeremy Huddleston <[email protected]>
Signed-off-by: Jesse Barnes <[email protected]>
|
|
|
|
|
|
|
| |
This reverts commit 70227e21bbd4411956ceeb5039640140e64a11a8.
revert this until we sort things out, with a new glproto release
with compatible struct names.
|
|
|
|
|
|
|
| |
We only handle a 32 bit swap count, so use the new structure definitions.
Reviewed-by: Adam Jackson <[email protected]>
Signed-off-by: Jesse Barnes <[email protected]>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Avoids double locking glXLock in the X wire to event handlers.
|
|
|
|
|
| |
glx_info is used if X_DRI2SwapBuffers is defined
This reverts commit c0ca2bfb2ad8cf7fb9d756b5ae52cb77236ff605.
|
|
|
|
| |
To quiet a compiler warning.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>
Signed-off-by: Jesse Barnes <[email protected]>
|
|
|
|
|
| |
Signed-off-by: Fernando Carrijo <[email protected]>
Signed-off-by: Brian Paul <[email protected]>
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes bug #27454.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 <[email protected]>
|
|
|