On Fri, Nov 30, 2001 at 09:17:07AM -0700, Derrik Pates wrote: > On Fri, 30 Nov 2001, Gareth Hughes wrote: > > > If I remember correctly, the hardware requires pitches to be multiples > > of 64 (that's pixels, not bytes). It's been a while, but we don't do > > that sort of thing for nothing... > > Well, how would an 800x600 display work on it then? The iBook's display is > 800x600, and as it works now (the 64 X pScrn->bitsPerPixel value) the X > server always gets the wrong line pitch (832) because 800 is not a round > multiple of 64. With the existing code, the X server has to be forced into > doing the "right" thing. With my change, it does the right thing > completely by itself. > > I don't have the Rage128 docs, I can only tell you what I'm seeing here - > and that's what I'm seeing. If the docs claim that the line pitch must be > a multiple of 64 pixels, maybe the docs are incorrect. (Would it be the > first time?)
I'm not familiar with your problem, or your proposed fix. Two things, however: 1) These pitches may have nothing to do with the current mode. Mode initialization probably touches different registers. 2) If the pitch register looks like this, say: Bits Field 0 - 12 Pitch, in multiples of 64 pixels ... ... (and I seem to remember that all the ATI cards look like this), then there is no way to program a pitch that *isn't* a multiple of 64 pixels. Hence: /* Offset in multiples of some large number. Radeon has * 4k alignment, from memory -- something large in any case. */ hw_offset = real_offset / 4096; /* Pitch in multiples of 64 pixels. */ hw_pitch = real_pitch / 64; reg.src_pitch_offset = ((hw_pitch << 0) | (hw_offset << 12)); Of course, it's been almost a year since I worked on that part of the driver, so I may be completely wrong. Note that even though a surface is allocated with a pitch that is a multiple of 64 pixels (832 in this case), the RAMDAC may only scan out the first 800 pixels or whatever the current mode is set to. -- Gareth _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel