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

Reply via email to