Age | Commit message (Collapse) | Author |
|
If the server doesn't send invalidate events, we may miss a
resize before the rendering starts. Invalidate the buffers now
so the driver will recheck before rendering starts.
https://bugs.freedesktop.org/show_bug.cgi?id=29984
https://bugs.freedesktop.org/show_bug.cgi?id=30155
|
|
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.
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=30234
|
|
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
|
|
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.
|
|
|
|
This never ceases to entertain.
|
|
|
|
|
|
Because double underscores in private type names is painful.
|
|
With this rename, we use 'config' consitently to refer to GLX configurations
instead of the modes/configs/visual mess before.
|
|
There is no assignment to the "ret" variable if X_DRI2SwapBuffers is
not defined. In this case, the earlier explicit "return 0" is likely
to be used, but the compiler can't be sure of that, (nor can I for
that matter).
We cover this case by explicitly initializing "ret" to 0.
|
|
|
|
gc->driContext points at the second member of the dri2 context. The
dri2 context is just a subclass of the GLX context.
Fixes piglit tfp testcase.
|
|
We use XID 0 to indicate the context has already been destroyed, but it's
currently bound.
|
|
|
|
This lets us better separate context creation between the different
backends.
|
|
|
|
Fixes glean glsl1 since 7b7845a076c933e096ac511b4184141ba194449a
|
|
We'll just get it from the returned drawable when we need it.
|
|
|
|
|
|
|
|
Only refresh the fake front buffer if there is one, and only destroy the region
once.
Fixes X11 protocol errors reported by 'mcgreg' on IRC.
|
|
We do this in the X server for DRI2.
|
|
|
|
|
|
The DRI2 protocol for ust, msc and sbc are unsigned but the extensions
talk about int64_t. Do a little dance to make the compiler shut up.
|
|
|
|
|
|
|
|
|
|
GLXscreenConfigs is badly named and a dumping ground for a lot of stuff.
This patch creates private screen structs for the dri drivers and moves
some of their fields over there.
|
|
Enough is enough.
|
|
|
|
This saves a superfluous flush and a create/destryo region.
|
|
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 we don't get invalidate events, we need to invalidate a drawable
before using it for tfp to make sure we have uptodate buffers.
|
|
This introduces a new per-context vtable, which lets us clean up all the
#ifdef's a bit and move the DRI2 specific implementation into dri2_glx.c.
|
|
The backwards compatibility code calls the DRI driver invalidate hook
on swap buffer and flush front buffer. This lets the DRI driver rely
on invalidate callbacks and drop the glViewport() hack, even if the
server doesn't send invalidate events. This is essentially a revert
of 2d00d16da7f5d2255cb37b48edaf4cbb9ca7e930, except that we now also
pass the __DRI_USE_INVALIDATE extension even when the server doesn't
have DRI2 invalidate events.
|
|
|
|
When we have DRI2 protocol at least 2.3, we get an event from the
server when the back buffers get invalidated. When that's the case
let the driver know that it can rely on invalidate instead of the
glViewport polling.
|
|
We only need this when the server may have swapped the buffers or
when we receive an invalidate event from the server. The default
behaviour is still that the DRI driver will invalidate its own buffers
when glViewport is called.
https://bugs.freedesktop.org/show_bug.cgi?id=27277
|
|
Conflicts:
src/glx/dri2_glx.c
src/glx/glx_pbuffer.c
|
|
There is a user somewhere that tests it before its initial set.
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
|
|
|
|
|
|
Re-add support for the vblank_mode environment and configuration
variable. Useful for benchmarking and app control.
|