Commit Graph

260 Commits

Author SHA1 Message Date
Dodji Seketeli
4113f040c5 GL: fix crash at mesa destruction time
* GL/glx/glxglcore.c:
         (_glXMesaScreenDestroy): delete the same amount of visuals
         that those which were created in createMesaVisuals().
2007-11-05 17:33:01 +01:00
Aaron Plattner
f2e310132f Add CreatePixmap allocation hints.
These hints allow an acceleration architecture to optimize allocation of certain
types of pixmaps, such as pixmaps that will serve as backing pixmaps for
redirected windows.
2007-11-04 16:11:28 -08:00
Kristian Høgsberg
692654b430 Set up visuals for the existing X visuals.
This makes the root visual a GLX capable visual again and adds a GLX visual
for the COMPOSITE ARGB visual cleanly (as opposed to the hack we had before).
2007-10-29 18:14:18 -04:00
Kristian Høgsberg
497aba8949 Weed out some unused fluff from __GLXcontext. 2007-10-26 11:25:57 -04:00
Kristian Høgsberg
80d8a3e176 Quiet glx visual debug info. 2007-10-26 10:20:50 -04:00
Kristian Høgsberg
f62277d421 Clean up unused pVisual part of __GLXcontext. 2007-10-25 18:49:02 -04:00
Kristian Høgsberg
30bcaa966d Make glx destroy path handle cases where the X window goes away first. 2007-10-25 18:49:02 -04:00
Michel Dänzer
fbe19c66c3 GLX: Fix leak of X pixmaps associated with GLX pixmaps. 2007-10-22 18:28:03 +02:00
Michel Dänzer
c6d36b1cee GLX: Don't crash on unused client array members when switching to/from console. 2007-10-22 18:28:03 +02:00
Kristian Høgsberg
89c6108531 Fix software GL to provide a list of supported fbconfigs like the DRI case. 2007-10-19 16:22:33 -04:00
Kristian Høgsberg
8e3c1dfc48 Introduce a new "GlxVisuals" option that controls which visuals are added.
Right now we default to "all" which gives us a situation much like before,
but when the "typical" option is implemented, we can change the default and
reduce the number of visuals the GLX module bloats the X server with.
2007-10-18 21:03:43 -04:00
Kristian Høgsberg
9e3cfd950d Add code to set up GLX visuals and add one for the first double buffered FBConfig. 2007-10-18 21:03:43 -04:00
Kristian Høgsberg
8fc635e6a8 Separate handling of GLX visuals and GLX FBConfigs.
XIDs for GLX visuals and FBConfigs used to be interchangable and the list of
GLX visuals was identical to the list for FBConfigs.  This patch splits handling
of these two data types and allows the X server to pick and choose the FBConfigs
that are exposed as visuals.
2007-10-18 21:03:43 -04:00
Kristian Høgsberg
7d74690536 Simplify and clean up GLX visual initialization.
Instead of the fragile setup where we filter the modes common between the
DDX generated GLX visuals and the DRI driver generated fbconfigs, we now
just take the fbconfigs returned by the DRI driver to be our supported set.
2007-10-18 21:03:43 -04:00
Alan Hourihane
9dde53ed17 Fix walking of GLX providers. 2007-10-16 19:55:56 +01:00
Michel Dänzer
70a5d33c9e Always check the return value of __glXGetDrawable first.
Fixes spurious GLX protocol errors because __glXGetDrawable doesn't set the
error code in case of success. Maybe it should, though.
2007-10-16 12:46:07 +02:00
Kristian Høgsberg
8b5078b7d9 Fix byte swapping for GetFBConfigs. 2007-10-15 13:11:30 -04:00
George Sapountzis
c922d2eebe glx: drop duplicate GetDrawableAttributesSGIX declarations.
They are officially autogenerated in indirect_dispatch.h now.
2007-10-15 11:32:08 +03:00
Kristian Høgsberg
ec0fc012e9 Fix GLX byteswapping. 2007-10-14 14:59:12 -04:00
Kristian Høgsberg
ccda4b66bd Implement ChangeDrawableAttributes so we can support GLX_EVENT_MASK.
We never need to actually send out the clobber event, so this should be
sufficient for GLX 1.3.
2007-10-12 19:15:05 -04:00
Kristian Høgsberg
695eb8b2e8 Implement GLX pbuffers. 2007-10-12 19:12:26 -04:00
Kristian Høgsberg
516c181f57 Add dispatching for GLX_SGIX_pbuffer. 2007-10-12 18:48:38 -04:00
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
600028305c Move hyperpipe and swapbarrier extension funcs to screen private struct.
This gets rid of a couple more global arrays and gets the two extensions
more in line with the general extension mechanism.
2007-10-12 16:18:23 -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
Dodji Seketeli
6307ee7709 GLX: allow skipping of visual init wrapping
* GL/glx/glxvisuals.c: added boolean to disable
	  calling init_visuals(). This gives a chance to Xephyr
	  to take over visuals manipulation and avoid a crash at
	  server shutdown in __glXMesaScreenDestroy(), due to the fact
	  that mesa might sees more visual than what it has actually created in
	  init_visuals(). It might see more visuals because Xephyr can augment
	  the number of visuals, dynamically.
	* os/utils.c: the boolean is actually defined here.
2007-10-02 16:55:17 +02:00
Ben Byer
5b08932bfb XDarwin: pulling in Indirect GLX fixes from downstream 2007-09-20 19:27:31 -07:00
Ben Byer
35ec8b89f4 DDX changes for XDarwin
Creating a real DDX section for XDarwin instead of
stuffing it into the XORG section in a half-assed manner.
2007-09-06 05:34:14 -07: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
Brian Paul
ff089e6cae glx: fix crash when freeing visuals
Don't set screen->num_vis to a value greater than the actual number of visuals.

X.Org Bug #10809 <http://bugs.freedesktop.org/show_bug.cgi?id=10809>
2007-08-23 20:10:41 +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
Daniel Stone
a4197db950 GL: GLX: Make sure glxbyteorder.h is distributed 2007-08-01 14:04:51 +03:00
Michel Dänzer
161624a5a4 GLX: Only build code dealing with GLXPixmap damage field when DRI is enabled. 2007-07-10 09:02:40 +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
Adam Jackson
4d76075dbb Death to RCS tags. 2007-06-29 14:06:52 -04: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
Adam Jackson
e6a7198e7c Bug #8991: Add glXGetDrawableAttributes dispatch; fix texture format therein.
Adapted to master branch by Michel Dänzer <michel@tungstengraphics.com>.
2007-05-22 10:51:55 +02: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
Brian
c1e1d6b98a In __glXCreateARGBConfig(), insert the new GL mode at the _end_ of the linked list.
Previously, the new mode was added at the head of the list.  This caused the
positional correspondence between modes and the XMesaVisuals array to be off
by one.  The net result was GLX clients failing when they tried to use the
last GLX mode/visual.

We still have the problem of DRI drivers not being able to use the extra
mode/visual introduced by __glXCreateARGBConfig().  glXCreateContext fails
with BadAlloc if it's attempted.  This is also the source of the often-
seen warning "libGL warning: 3D driver claims to not support visual xxx"
Look into fixing that someday...
2007-05-02 15:56:05 -06:00
Adam Jackson
c09e68ce30 Paper over a crash at exit during GLX teardown. 2007-04-25 16:46:26 -04:00
Brian
cd2c1714eb add slang_mem.c 2007-04-21 12:40:51 -06:00
Brian
67545333ec replace occlude.c w/ queryobj.c 2007-04-21 12:40:33 -06:00
Brian
9c2e955f67 regenerated to add GL_CLIENT_ATTRIB_STACK_DEPTH (bug 9823) 2007-04-20 07:21:19 -06:00
Brian
deda7791df remove sources deleted in Mesa 2007-04-16 11:35:22 -06:00