XGL source code error in xorg/GL/glx/glxdri.c file

Ioannis Nousias s0238762 at sms.ed.ac.uk
Thu Mar 30 09:36:20 PST 2006


hello everyone. I'm new to the list and I hope this is the right place 
to post this.

as many others did :) I've also tried to compile the xgl-0-0-1 branch of 
xserver from source. I was successful eventually, but came across this 
error.

glxdri.c: In function '__glXDRIdrawableCopySubBuffer':
glxdri.c:199: error: '__DRIdrawable' has no member named 'copySubBuffer'
make[2]: *** [glxdri.lo] Error 1
make[2]: Leaving directory `/tmp/xgl/GL/glx'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/xgl/GL'
make: *** [all-recursive] Error 1

which corresponds to this:
  (*private->driDrawable->copySubBuffer)(NULL,
                      private->driDrawable->private,
                      x, y, width, height);

"__DRIdrawable" (actually "__DRIdrawableRec") is defined in 
GL/internal/dri_intergace.h in Mesa's source code (CVS), which indeed 
does not provide a copySubBuffer function pointer.

In the above function "__glXDRIdrawableCopySubBuffer", local variable 
"private" is of "__GLXDRIdrawable" type, which has "__GLXdrawable" and 
"__DRIdrawable" members.  Unlike "__DRIdrawable" , "__GLXdrawable", 
which is defined in xorg/GL/glx/glxdrawable.h in xserver's source code,  
does provide a copySubBuffer function pointer.

note that the signature of this function is somehow different from that 
used above, the correct being :  GLboolean 
(*copySubBuffer)(__GLXdrawable *, int, int, int, int)
So I modified the above line to this:

 (*private->base.copySubBuffer)(NULL, x, y, width, height);

I have no idea if that is correct or not. It compiles and everything 
works just fine, but that of course doesn't say much. My feeling is that 
this function is not used anyway and most possibly the file should not 
be compiled in the first place. So I presume it needs to be disabled 
somehow when configuring.

These are the configure options I used for xgl:
 ./autogen.sh --enable-xgl --disable-xorg --disable-xprint --enable-glx 
--enable-dri --with-mesa-source=/tmp/mesa --with-release-snap=1 
--disable-dmx --disable-xvfb --disable-xnest --enable-xglx --enable-xkb 
--disable-kdriveserver --prefix=/opt/Xgl

I hope this info is useful to you.

take care ! :)




More information about the xorg mailing list