[Mesa3d-dev] Re: GLX indirect rendering broken

Ian Romanick idr at us.ibm.com
Thu Oct 20 16:24:55 PDT 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Brian Paul wrote:
> Ian Romanick wrote:
> 
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Brian Paul wrote:
>>
>>> I've found more problems with the FASTCALL stuff in the server-side GLX
>>> code.
>>>
>>> Ian submitted a patch to fix my previous problem with this, but I found
>>> today that the glGetMapfv() function was broken.  Disabling the FASTCALL
>>> macro/optimization fixes things.
>>>
>>> Until detailed investigation and testing can be done, I'm going to
>>> totally disable FASTCALL.
>>
>>
>>
>> My opinion is that if the server-side code isn't including the right
>> header files to get the correct prototypes, it's already broken.
>>
>> That said, I'm not sure how any of the FASTCALL stuff could impact
>> glGetMapfv at all.  Without patches that exist only in bugzilla, *none*
>> of the __glGet*_size functions have been changed.  Are you sure one of
>> the FASTCALL functions is the root cause?
> 
> 
> Looks like adding the right #includes seems to fix things:
> 
> Index: render2.c
> ===================================================================
> RCS file: /cvs/xorg/xc/programs/Xserver/GL/glx/render2.c,v
> retrieving revision 1.5
> diff -r1.5 render2.c
> 45a46
>> #include "indirect_size.h"
> Index: singlesize.c
> ===================================================================
> RCS file: /cvs/xorg/xc/programs/Xserver/GL/glx/singlesize.c,v
> retrieving revision 1.7
> diff -r1.7 singlesize.c
> 43a44
>> #include "indirect_size.h"
> 
> 
> <rant> How the h*ll does this kind of stuff happen in the first place?
>  Are we just ignoring compiler warnings? </rant>
> 
> Sorry, but I wasted a full hour on this dumb thing.

Apparently, yes. :(  render2.c doesn't need to explicitly include
indirect_size.h because impsize.h, which it already includes, picks it
up for it.

The problem was caused by my change to singlesize.c on 2005-09-28.
EvalComputeK was replaced by calls to __glMap[12][fd]_size.  I'm going
to fix this by adding '#include "indirect_size.h"' to singlesize.h.
That should prevent these problems from creeping in again.

I'm unable to test this right now because execmem.c doesn't want to
build on the server size.  I should be able to send out a patch for that
shortly.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQFDWCdHX1gOwKyEAw8RAiTQAKCY8wj9mVOJjzSTpBtCP3gQI9BrrwCfYJ5a
5iJExiBBny0hu6Uw4ps4yS8=
=FCKy
-----END PGP SIGNATURE-----



More information about the xorg mailing list