On Fre, 2011-12-16 at 16:42 +0800, chenhc@lemote.com wrote:
On Don, 2011-12-08 at 19:35 +0800, chenhc@lemote.com wrote:
I found CP_RB_WPTR has changed when "ring test failed", so I think CP is active, but what it get from ring buffer is wrong.
CP_RB_WPTR is normally only changed by the CPU after adding commands to the ring buffer, so I'm afraid that may not be a valid conclusion.
I'm sorry, I've made a spelling mistake. In fact, CP_RB_RPTR and CP_RB_WPTR both changed, so I think CP is active.
I see. However, I think this actually makes it unlikely that the problem is the CP reading wrong values from the ring, as otherwise the CP itself would likely get stuck sooner or later.
Then, I want to know whether there is a way to check the content that GPU get from ring buffer.
See the r100_debugfs_cp_csq_fifo() function, which generates the output for /sys/kernel/debug/dri/0/r100_cp_csq_fifo.
Hmmm, I don't think this function can be used by r600 (or write a similar one for R600), because I haven't found CSQ registers in r600 code.
Hmm yeah, looks like the registers for this have changed.