Tim Smith wrote: > On Monday 01 Jul 2002 5:19 pm, Keith Whitwell scribed numinously:" > >>>I'm running without PageFlipping, and don't see any SwapBuffers ioctls >>>in my debug output, so that rules that out. >>> >>>I got suspicious of the clear ioctl before and put a wait-for-idle >>>(full blown host-wait) call in after each clear. That didn't fix it >>>either, so I don't think it's the clear. >>> >>>It's always radeon_cp_cmdbuf, and it never, ever locks up when nrect < >>>2, and usually nrect >=3 (I think I might have seen a lockup with nrect >>>== 2 but it's harder to provoke). emit_clip_rect() therefore seemed >>>like the safest place to put the wait. In the common case where >>>nrect==1 it gets called once only for the whole buffer, and most of the >>>time it should be a no-op. >>> >>The other dumb thing we're doing here is using those registers for 3d >>cliprects *at all* -- the radeon has 3 (three!) dedicated 3d scissor >>rects that are intended for this task -- we should simply change the code >>to use them, fix the lockup & get a 3x speedup in clipping situations... >> > > I found those defined in the DRM header file and in the SDK from ATI, but no > documentation on them at all; the register reference is silent on them and > lists no registers with their offsets. > > Looking around there got me thinking, and attached is a *much* better fix > for the problem than I previously posted; no waiting around for things to > go idle at all. I've verified that this fixes all the lockups I've been > able to provoke. This emits the type 3 SET_SCISSORS CCE command packet > rather than two consecutive type 0 register-write command packets. > Given that this fixes it without a wait, I theorise that either it's more of > a conflict over the host interface than over the 2D/3D engines, or the > microengine knows something about the SET_SCISSORS command packet that it > doesn't know about two consecutive register writes (which latter seems more > likely, else why bother to provide the command?)
This looks good. Have you tested with pageflipping enabled? Keith ------------------------------------------------------- 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