aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
diff options
context:
space:
mode:
authorJeremy Kolb <[email protected]>2006-11-01 02:48:34 +0000
committerJeremy Kolb <[email protected]>2006-11-01 02:48:34 +0000
commit1ebe921228ef896804384002d8a3acd0885afc98 (patch)
treeb505effd1ba68a5a6ad70b902101050beb1fa947 /src/mesa/drivers/dri/nouveau/nouveau_fifo.h
parent2d2d617dbc17817f214e0b523f929de1f5d8f48a (diff)
Added OUT_RING* debugging macros. Compile with NOUVEAU_RING_DEBUG to use.
Diffstat (limited to 'src/mesa/drivers/dri/nouveau/nouveau_fifo.h')
-rw-r--r--src/mesa/drivers/dri/nouveau/nouveau_fifo.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/nouveau/nouveau_fifo.h b/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
index bf528a24ca6..95c78b56758 100644
--- a/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
+++ b/src/mesa/drivers/dri/nouveau/nouveau_fifo.h
@@ -48,9 +48,28 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* - WAIT_RING waits for size (in uint32_ts) to be available in the fifo
*/
+/* Enable for ring debugging. Prints out writes to the ring buffer
+ * but does not actually write to it.
+ */
+#ifdef NOUVEAU_RING_DEBUG
+
+#define OUT_RINGp(ptr,sz) do { \
+int i; printf("OUT_RINGp:\n"); for(i=0;i<sz;i+=4) printf(" 0x%8x\n", ptr+sz); \
+}while(0)
+
+#define OUT_RING(n) do { \
+ printf("OUT_RINGn: 0x%8x\n", n); \
+}while(0)
+
+#define OUT_RINGf(n) do { \
+ printf("OUT_RINGf: 0x%8x\n", f); \
+}while(0)
+
+#else
+
#define OUT_RINGp(ptr,sz) do{ \
memcpy(nmesa->fifo.buffer+nmesa->fifo.current,ptr,sz); \
- nmesa->fifo.current+=sz; \
+ nmesa->fifo.current+=(sz/sizeof(*ptr)); \
}while(0)
#define OUT_RING(n) do { \
@@ -61,6 +80,8 @@ nmesa->fifo.buffer[nmesa->fifo.current++]=n; \
*((float*)(nmesa->fifo.buffer+nmesa->fifo.current++))=n; \
}while(0)
+#endif
+
extern void WAIT_RING(nouveauContextPtr nmesa,u_int32_t size);
#define BEGIN_RING_PRIM(subchannel,tag,size) do { \