[prev in list] [next in list] [prev in thread] [next in thread]
List: freedesktop-xorg
Subject: GLXPixmap and radeon driver
From: Glynn Clements <glynn () gclements ! plus ! com>
Date: 2008-03-29 12:00:59
Message-ID: 18414.12155.52240.876157 () cerise ! gclements ! plus ! com
[Download RAW message or body]
I have the following code, which tries to set up OpenGL rendering to a
GLXPixmap:
static Display *dpy;
static int scr;
static GLXContext ctx;
#ifdef HAVE_PIXMAPS
Pixmap pixmap;
static GLXPixmap glxpixmap;
#endif
...
static void create_pixmap(int width, int height)
{
#ifdef HAVE_PIXMAPS
static int att[] = {
GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_DEPTH_SIZE, 1,
None
};
XVisualInfo *vi;
if (getenv("GRASS_NO_GLX_PIXMAPS"))
return;
fprintf(stderr, "Create PixMap Using GLX 1.1\n");
vi = glXChooseVisual(dpy, scr, att);
if (!vi) {
fprintf(stderr, "Unable to get Visual\n");
return;
}
ctx = glXCreateContext(dpy, vi, NULL, GL_FALSE);
if (!ctx) {
fprintf(stderr, "Unable to create context\n");
return;
}
pixmap = XCreatePixmap(dpy, RootWindow(dpy, vi->screen),
width, height, vi->depth);
if (!pixmap) {
fprintf(stderr, "Unable to create pixmap\n");
return;
}
glxpixmap = glXCreateGLXPixmap(dpy, vi, pixmap);
if (!glxpixmap) {
fprintf(stderr, "Unable to create GLX pixmap\n");
return;
}
if (!glXMakeCurrent(dpy, glxpixmap, ctx)) {
fprintf(stderr, "Unable to use context\n");
glXDestroyGLXPixmap(dpy, glxpixmap);
glxpixmap = None;
return;
}
#endif
}
It isn't essential that the code succeeds. If glxpixmap is None, a
fall-back will be used.
The code works fine with the nv and nvidia drivers, and with Cygwin's
XWin.exe.
However, I'm getting a report that with the following setup:
Debian testing x86, X.Org 7.2, Mesa 7.0.3 rc2, "radeon" driver 6.6.3, Ati
Radeon Mobility X700, GRASS SVN r30759.
the glXMakeCurrent() call generates a GLXBadContext error then
terminates the program.
So:
1. Is the code doing something wrong?
2. Is there anything which it can do to determine that it can't use a
GLXPixmap (without terminating the program)?
3. Is this a known issue which has since been fixed in a later version
of the driver (or some other part of X)?
FWIW:
Bug report:
http://trac.osgeo.org/grass/ticket/104#comment:6
Source code:
http://trac.osgeo.org/grass/browser/grass/trunk/visualization/nviz/src/do_zoom.c
--
Glynn Clements <glynn@gclements.plus.com>
_______________________________________________
xorg mailing list
xorg@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xorg
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic