Commit Graph

34 Commits

Author SHA1 Message Date
Kristian Høgsberg
d7ded953c4 Implment GLXPixmaps. 2007-10-12 18:26:55 -04:00
Kristian Høgsberg
2b0847c7aa Implement damage reporting for AIGLX. 2007-10-12 16:19:19 -04:00
Kristian Høgsberg
781515bb63 Convert GLX module to use screen private indexes like everything else. 2007-10-12 16:18:19 -04:00
Kristian Høgsberg
72a3d68a2f Update the AIGLX DRI loader to use the new DRI interface.
This lets us drop a bunch of workarounds and use the new DRI extension
mechanism.
2007-10-12 15:51:47 -04:00
Michel Dänzer
0958505961 __glXDRIbindTexImage: Fail if no texture bound to pixmap's texture target.
We would most likely crash somewhere in Mesa if we tried to continue in this
case.
2007-08-24 13:04:48 +02:00
Kristian Høgsberg
6a195e816b Revert "Implement damage tracking for AIGLX."
This reverts commit 2243b30e54.  The existing
DRI interface doesn't let us get from a __DRIdrawable to the corresponding
X drawable, and thus, we can't implement AIGLX damage tracking with the
current interface.
2007-08-13 10:43:48 -04:00
Kristian Høgsberg
2243b30e54 Implement damage tracking for AIGLX. 2007-08-10 15:53:05 -04:00
Michel Dänzer
c466633673 GLX/DRI: Remove some unused variables. 2007-08-01 18:32:09 +02:00
Michel Dänzer
17cb4f64e3 GLX_EXT_texture_from_pixmap: Use client provided texture target when available.
This prevents situations where the server doesn't use the target the
client thinks it does, usually resulting in the texture being sampled as all
white.
2007-08-01 18:13:18 +02:00
Michel Dänzer
4abd00dab7 Make sure DRI drawables are cleaned up when client dies.
The previous scheme didn't work when the client didn't create the core drawable,
e.g. the root or composite overlay window. Use refcounting via special client
resources to fix that.
2007-07-10 09:02:08 +02:00
Michel Dänzer
1aceec61ff DRI: Clip cliprects obtained from DRIGetDrawableInfo to screen dimensions.
This is to avoid issues with redirected windows which are located partly or
fully outside of a screen edge, resulting in unusual cliprects which the 3D
drivers generally can't handle. The symptoms in such cases would be incorrect
rendering or even crashes or hangs.
2007-06-11 09:23:19 +02:00
Adam Jackson
21e8f4eb02 Don't print lack of DRI support as an error in AIGLX init. 2007-06-02 16:13:01 -04:00
Michel Dänzer
6324bfc468 AIGLX: Zero-copy texture-from-pixmap.
When available, use the 2D driver texOffsetStart hook and the 3D driver
setTexOffset hook to save the overhead of passing the pixmap data to
glTex(Sub)Image.

The basic idea is to update the driver specific 'offset' for bound pixmaps
before dispatching a GLX render request and to flush immediately afterwards
if there are any pixmaps bound. This should ensure that the 3D driver can
use pixmaps for texturing directly regardless of the X server moving them
around.
2007-05-22 10:51:53 +02:00
Keith Packard
f24391dbfd In AIGLX EnterVT processing, invoke driver EnterVT before resuming glx.
As the driver EnterVT function generally re-enables the hardware and
prepares it for rendering, it must be called before any gl functions are
called which could touch the hardware.
2007-04-09 12:30:31 -07:00
Alan Hourihane
4bf1b280f7 Set pScreen on context 2007-03-09 14:18:14 +00:00
Michel Dänzer
65f4690ecb __glXDRIscreenProbe: Use drmOpen/CloseOnce.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=9275 . Based on patch from
Alan Swanson.
2007-01-19 17:56:06 +01:00
Michel Dänzer
3ad1642f1b Fix __glXDRIbindTexImage() for 32 bpp on big endian platforms. 2006-10-15 16:57:09 +02:00
Kristian Høgsberg
86450998da Fix AIGLX VT switching.
See https://bugs.freedesktop.org/show_bug.cgi?id=7916

There may be a simpler, less intrusive fix that involves just rearranging
DRI locking between 2D and 3D drivers around VT switch.
2006-09-07 15:35:16 -04:00
Ian Romanick
0f9cfb2f75 Implement GLX_SGI_swap_control.
Regenerate from glX_API.xml 1.2.  Add infrastructure to support
GLX_SGI_swap_control for AIGLX when the DRI driver enables it.  Tested
with R300.
2006-08-31 13:54:10 -07:00
Ian Romanick
db6d04d4b8 Add support for AIGLX drivers to enable GLX extensions that they support. 2006-08-29 14:35:08 -07:00
Ian Romanick
cd2da4e41e Remove GL/glx/g_disptab.c, GL/glx/g_disptab_EXT.c, and
GL/glx/g_disptab_EXT.h.  Unfortunately GL/glx/g_disptab.h has to be
kept around a bit longer.
2006-08-24 18:00:16 -07:00
Tilman Sauerbeck
c4f5de6cc3 Sanitized glxdri's Block/Wakeuphandler calling.
__glXDRIleaveServer() and _enterServer() used to call DRIDoBlockHandler
(resp DRIDoWakeupHandler) directly. They are now calling DRIBlockHandler
(resp DRIWakeupHandler) to account for driver specific block/wakeup
hooks.
2006-08-09 20:21:52 +02:00
Kristian Høgsberg
5416f90e9c Implement GLX_MESA_copy_sub_buffer. 2006-07-06 21:25:29 -04:00
Kristian Høgsberg
7cf3ec7b59 Move createDrawable from __GLXcontext to __GLXscreen. 2006-07-06 00:28:53 -04:00
Kristian Høgsberg
54d9acd511 Add damage tracking to GLX_EXT_tfp implementation.
- Only update when pixmap content actually change;
- Only update the regions that acutally changed.

This is a worthwhile optimization, but it doesn't completely remove
the bottleneck, as mesa still uploads then entire texture whenever
it changes.
2006-06-27 19:44:52 -04:00
Kristian Høgsberg
7e085f52b6 Use xf86LoaderCheckSymbol to check for DRI symbols instead of dlsym,
avoiding RTLD_DEFAULT. (__glXDRIscreenProbe): Change GLX-DRI to AIGLX
    in LogMessage for consitency.
2006-04-02 22:31:13 +00:00
Eric Anholt
4e3a4cfdd1 Use RTLD_DEFAULT, rather than relying on NULL happening to map to it as it
does on Linux.
2006-04-02 06:22:05 +00:00
Kristian Høgsberg
d1746ec0f0 Make sure DRI module is loaded before calling DRI functions. 2006-03-24 17:58:39 +00:00
Kristian Høgsberg
6d2896b384 Improve error logging. 2006-03-22 22:49:52 +00:00
Kristian Høgsberg
8e3ad87d01 #include indirect_dispatch to get prototypes for FBO functions.
Fix a couple of warnings.
2006-03-21 22:32:13 +00:00
Kristian Høgsberg
2d2d38d17c Check for glproto when building GLX and make sure we have at least 1.4.6.
Drop glx_ansic.h wrapper and call xalloc, xrealloc, xfree and str-funcs
    directly.
2006-03-17 01:47:25 +00:00
Kristian Høgsberg
2c11cde336 More patches from David Reveman:
Add GL_ARB_texture_non_power_of_two, GL_EXT_framebuffer_object and
    GL_NV_texture_env_combine4 extensions.
Add __GLXcontext destructor and flush context cache there and on
    loseCurrent.
Chain back to new __GLXcontext destructor. (__glXMesaContextForceCurrent):
    Set render table on forceCurrent. (init_screen_visuals): Index pVis
    array correctly. (GlxGetMesaProvider): Add this.
Hook up FBO marshalling.
2006-03-17 00:35:18 +00:00
Kristian Høgsberg
01aa209f20 Bail out early if screen doesn't support DRI. 2006-03-14 19:32:27 +00:00
Kristian Høgsberg
c3342c8000 Merge accel_indirect branch to HEAD. 2006-03-12 00:11:34 +00:00