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

Reply via email to