[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