Hello list,
I just found out, that on my OpenSuSE 11.1 systems,
I cannot use "glDrawArrays" -in all scenarios- anymore.
The Attachment is a demo program.
The program works on local X Servers.
This program has some issues for me which I posted on freeglut-devel:
http://sourceforge.net/mailarchive/forum.php?forum_name=freeglut-developer
But it makes clear what I intent to do -- paint a quad :)
(This demo does not work for me in all cases, for me I use a qt
program which does not have the glut issues)
The Problem:
============
If I login over ssh from my workstation (X11 server with nvidia drivers)
into a remote system with mesa drivers and start the demo program
I only get an empty window.
I have read about the nvidia "AllowUnofficialGLXProtocol" option,
which does not work too.
Is there a known incompatibility between Mesa GLX and NVidia
X11 Servers for "glDrawArrays"?
Should this work?
Maybe its only my OpenSuse 11.1 system which have this issue?
I know that suse applies this patch
(with the name:Mesa_indirect_old_xserver_compatibility.diff)
>diff --git a/src/glx/x11/glxext.c b/src/glx/x11/glxext.c
>index b6bdbd5..9be1358 100644
>--- a/src/glx/x11/glxext.c
>+++ b/src/glx/x11/glxext.c
>@@ -720,8 +720,8 @@ __glXInitialize(Display * dpy)
> dpyPriv->dri2Display = dri2CreateDisplay(dpy);
> dpyPriv->driDisplay = driCreateDisplay(dpy);
> }
>- if (glx_direct)
>- dpyPriv->driswDisplay = driswCreateDisplay(dpy);
>+// if (glx_direct)
>+// dpyPriv->driswDisplay = driswCreateDisplay(dpy);
> #endif
>
> if (!AllocAndFetchScreenConfigs(dpy, dpyPriv)) {
but because of some issues with dri2proto etc.... I cannot really
test current versions. (I wonder how they build mesa anyway)
So the question is:
Should "glDrawArrays" work with mesa indirect and nvidia drivers on the
X11 Server?
regards,
Martin
#include <GL/glut.h>
/* compile with: gcc -o draw draw.c -lglut */
static float vertices[]={ 0.5, 0.5,0.0,
-0.5, 0.5,0.0,
-0.5,-0.5,0.0,
0.5,-0.5,0.0};
void display(void) {
glClear(GL_COLOR_BUFFER_BIT);
// vertex test
/*
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3,GL_FLOAT,0,vertices);
glDrawArrays(GL_QUADS,0,4);
glDisableClientState(GL_VERTEX_ARRAY);
// normal quad
*/
glBegin(GL_QUADS);
glVertex3f(vertices[0],vertices[1],vertices[2]);
glVertex3f(vertices[3],vertices[4],vertices[5]);
glVertex3f(vertices[6],vertices[7],vertices[8]);
glVertex3f(vertices[9],vertices[10],vertices[11]);
glEnd();
glFlush(); /* Single buffered, so needs a flush. */
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutCreateWindow("single quad");
//glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB);
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev