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

Reply via email to