On 2002.03.04 09:38 Leif Delgass wrote:
> Well, my disks just spun up for the nightly updatedb cron, so that's my
> cue to go to bed, but I wanted to give you a quick update. I've got
> scissors and cliprects working, with the exception of overlapping GL
> windows having some problems, but we had that problem before. I'm
> probably going to commit this tomorrow, but I wanted to experiment a bit
> more and possibly do some cleanup. I'm not sure that I have all the
> state
> updates in the right places, I want to make sure that everything is
> updated when it needs to be but not when it doesn't.
>
That's great!
> I've looked at several drivers for these changes, and they are all a bit
> different. Anyway, I figured out that the viewport calculation needed
> the
> x and y offsets to the origin of the window added in. I did this by
> storing the offsets in 2 context vars, which is what some other drivers
> do. r128 seems to have a cce register to handle the offsets. Cliprects
> seem to be working right now with some more changes. Basically, my
> (most likely somewhat flawed) understanding is this:
>
> Scissors
> --------
> The scissors are register settings that determine a hardware clipping
> rect
> in window coords. Any part of a primitive or other drawing operation
> that
> extends beyond the scissors is not drawn. The scissors can be set
> through
> GL commands. This has nothing to do with perspective clipping in the
> pipeline, just the final window coordinates.
>
> Cliprects
> ---------
> Cliprects are used to determine what parts of the context/window should
> be
> redrawn to handle overlapping windows. The more overlapping windows, the
>
> more cliprects you have. These need to be passed to the drm. It does a
> clear or swap for each cliprect. Again these are for 2D clipping after
> rasterization and not part of the pipeline. Things get a bit complicated
>
> by the fact that there can be separate clip rects for the front and back
> buffers.
>
> Viewport
> --------
> The viewport array holds values to determine how to translate
> transformed,
> clipped, and projected vertex coordinates into window coordinates. This
> is the last stage of the pipeline. The values are based on the size and
> position of the "drawable", aka the drawing area of the window for the
> context.
>
(nice! - good material for the FAQ ;-)
> I'm attaching the diff of my mesa driver directory so you can have a look
> before I commit it. There's also a couple of small changes in the drm
> for
> this (which I didn't include in the diff), to make it use the scissor and
> mask values from the sarea register context.
>
It seems everything fine to me except the two:
- if ( MACH64_DEBUG & DEBUG_VERBOSE_MSG & 0) {
+ if ( MACH64_DEBUG & DEBUG_VERBOSE_MSG ) {
This will surely cause hanging, at least on my system. Doesn't that also
happens to you?
> --
> Leif Delgass
> http://www.retinalburn.net
>
Jos� Fonseca
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel