Michel Dänzer wrote: > >Thanks for testing. I've cleaned up the patch slightly to better fit >into the existing code and added a kludge for HOST_BIG_ENDIAN_EN: > >http://www.penguinppc.org/~daenzer/DRI/r128-dri-endianness.diff > >Henry, if this works for you, I'll commit it. >
I applied and retested it, looks good. One pedantic little change to the diff that I missed is attached, it might avoid future problems. I've also tested on my 500mhz G3 PowerBook 2000 (Pismo), no problems with eliminating the HOST BE bit there, even sleep/wake work. Hadn't tried your XV dma fix on it before, alas the speedup isn't as dramatic as on the G4, but it does reduce dropped frames enough to eliminate most of the flutter. Alas, while the dma/agp instabilites don't manifest as quickly as on the SMP system, they can be tripped if I try hard enough. Thanks, Henry
--- r128-dri-endianness.diff.orig Wed Jul 17 12:02:48 2002 +++ r128-dri-endianness.diff Wed Jul 17 12:03:34 2002 @@ -120,7 +120,7 @@ -} while (0) +#define VERT_SET_RGBA( v, c ) \ + do { \ -+ r128_color_t *vc = (r128_color_t *)&v->ui[coloroffset]; \ ++ r128_color_t *vc = (r128_color_t *)&((v)->ui[coloroffset]; \ + vc->blue = (c)[2]; \ + vc->green = (c)[1]; \ + vc->red = (c)[0]; \