On Mon, 2002-07-01 at 23:23, Tim Smith wrote: > On Monday 01 Jul 2002 9:06 pm, Michel Dänzer scribed numinously:" > > On Mon, 2002-07-01 at 21:28, Tim Smith wrote: > > > - BEGIN_RING( 4 ); > > > - OUT_RING( CP_PACKET0( RADEON_RE_TOP_LEFT, 0 ) ); > > > - OUT_RING( (box->y1 << 16) | box->x1 ); > > > - OUT_RING( CP_PACKET0( RADEON_RE_WIDTH_HEIGHT, 0 ) ); > > > -/* OUT_RING( ((box->y2 - 1) << 16) | (box->x2 - 1) );*/ > > > - OUT_RING( (box->y2 << 16) | box->x2 ); > > > - ADVANCE_RING(); > > > + BEGIN_RING( 3 ); > > > + OUT_RING( CP_PACKET3( RADEON_CCE_SET_SCISSORS, 1 )); > > > + OUT_RING( (box->y1 << 16) | box->x1 ); > > > + OUT_RING( (box->y2 << 16) | box->x2 ); > > > + ADVANCE_RING(); > > > > Add Jacek's fix to use the commented out variant with -1, and it's > > perfect! :) Or does the command account for that? Either way, great job. > > As far as I can tell, the command simply causes the CCE to put the same > register writes on the command FIFO itself. However, it gets to manage its > own state better while doing that because it knows what's going on, rather > than having to recognise a write to RE_TOP_LEFT and put itself into a > different state waiting for a write to RE_WIDTH_HEIGHT to happen (eek!). > > I wondered about that commented-out line. I assumed (yeah, I know :-) that > it was there because someone was trying different things, and left the one > that didn't work commented out. The question I presume being whether the > rectangle is bottom-right inclusive of bottom-right exclusive. I think it's > inclusive, myself (unlike normal drawing of rectangles when you specify a > bottom-right corner; I think they want you to use width/height) because > otherwise it would be possible to have a screen whose bottom right lines > could never be included in the clipping rectangle; you could put a pixel at > 0x1FFF, 0x1FFF, but never set up a clipping rectangle that allowed it to be > drawn.
Why not? If you have to specify w-1 and h-1, w and h can be up to 1<<16. > Also, the screen seems correct as-is; if the bottom/right were being > specified too wide, I would expect the top left of my menus to be > overwritten, which would be quite obvious as they're bevelled. Am I missing > something? Apparently yes, though I can't tell you exactly what. You should see the problem with a fullscreen app, I saw it particularly well with BillardGL. > > Also, 'CCE' makes me think of a Rage128, the Radeon engine is usually > > called 'CP', and the existing commands in the file are simply called > > RADEON_CNTL_* . > > Oops. Cut 'n' paste -itis. Yes, call it RADEON_CNTL_SET_SCISSORS. Much more > sensible. The way I read the docs, the CP reads the command FIFO (as > opposed to PIO mode where you manipulate the registers directly), and the > CCE reads the ring buffer and feeds the command FIFO. I saw a sentence along the lines of 'CP aka CCE' in there, and they seem to use both acronyms interchangeably. The register names all seem to contain CP though, I guess that's why I was (mis?)lead to thinking that what used to be called CCE for the Rage128 was called CP for the Radeon. -- Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel