On Friday 24 May 2002 11:39 pm, Michel D�nzer scribed numinously:"
> Logging the buffer age in radeon_cp_discard_buffer() and looking at what
> happened after the buffer with the age shown in 'done=xxxxx' was
> discarded might be interesting.

Just saw your message as I was about to post. I've actually spent most of 
today doing something of the sort.

Here's one right after the last buffer listed in "done=xx" for the first 
type. (the [stamp=N] part is just a uint32 that increments every time a 
debug line is printed, so I can tell when I'm missing some).

<7>[drm:radeon_cp_discard_buffer] [stamp=478052] age=75343 dispatched 1
<7>[drm:radeon_freelist_get] [stamp=478053]  ret buf=6 last=6 age=74915 
done=75331
<7>[drm:radeon_unlock] 6 (pid 1651) releases lock (0xc0000006), flags = 
0x00000000
<7>[drm:radeon_lock] [stamp=478055] 6 (pid 1651) requests lock (0x00000000), 
flags = 0x00000000
<7>[drm:radeon_lock] [stamp=478056] 6 (pid=1651) takes lock
<7>[drm:radeon_lock] 6 has lock
<7>[drm:radeon_cp_vertex2] radeon_cp_vertex2: stamp=478058 pid=1651 index=6 
discard=1
<7>[drm:radeon_cp_vertex2] [stamp=478059] calling radeon_do_cp_idle (MACRO)
<7>[drm:radeon_emit_state] [stamp=478060] radeon_emit_state: 
dirty=0x00000000
<7>[drm:radeon_cp_dispatch_indices] [stamp=478061] indices: start=32a0/32b4 
end=37b2 count=639 nv 6144 offset 4162000
<7>[drm:radeon_cp_dispatch_indirect] [stamp=478062] indirect: buf=6 s=0x32a0 
e=0x37b2
<7>[drm:radeon_cp_dispatch_indirect] 
radeon_cp_dispatch_indirect:[stamp=478063] dispatched 75344
<7>[drm:radeon_cp_dispatch_indices] 
radeon_cp_dispatch_indices:[stamp=478064] dispatched 75345
<7>[drm:radeon_emit_state] [stamp=478065] radeon_emit_state: 
dirty=0x00000201
<7>[drm:radeon_emit_context] [stamp=478066]    radeon_emit_context
<7>[drm:radeon_emit_tex0] [stamp=478067]    radeon_emit_tex0: 
offset=0x3f63000

...it then continues for some long while until...

<7>[drm:radeon_cp_idle] [stamp=478536] calling radeon_do_cp_idle
<7>[drm:radeon_do_cp_idle] [stamp=478537] calling radeon_do_wait_for_idle
<7>[drm:radeon_do_wait_for_idle] [stamp=478538] called
<7>[drm:radeon_do_wait_for_fifo] [stamp=478539] WANT 64 FIFO SLOTS
<3>[drm:radeon_do_wait_for_fifo] *ERROR* failed!
<4>radeon_status:
<4>DONE_AGE = 75343
<4>RBBM_STATUS = 0x80116100
<4>CP_RB_RTPR = 0x00018c4f
<4>CP_RB_WTPR = 0x00018f1f
<4>AIC_CNTL = 0x00000000
<4>AIC_STAT = 0x00000004
<4>AIC_PT_BASE = 0x00000000
<4>TLB_ADDR = 0x00000000
<4>TLB_DATA = 0x00000000

Sometimes it runs out of FIFO and sometimes it runs out of buffers. 

I've got reams of logs by now, and chased an awful lot of red herrings :-). 
The culprit always seems to be a call to radeon_cp_vertex2, but currently 
I'm blowed if I can figure out why. I'm going to concentrate more logging 
on that routine tomorrow.

-- 
Tim Smith ([EMAIL PROTECTED])
"Dude." "Dude." "Dentist." "Dude."
    - Conversation overheard between two eCos hackers


_______________________________________________________________

Don't miss the 2002 Sprint PCS Application Developer's Conference
August 25-28 in Las Vegas -- http://devcon.sprintpcs.com/adp/index.cfm

_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to