summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airliedfreedesktop.org>2005-01-23 06:27:08 +0000
committerDave Airlie <airliedfreedesktop.org>2005-01-23 06:27:08 +0000
commit150ed2e43d5541556d282cae728cebeec692e07a (patch)
tree63acd7516484cdbb566f3a3f48979b2c0fb89538
parent999534216d14d85c7f07641dfa37f1aff28d2103 (diff)
add sync debugging to the radeon driver
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_context.c1
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_context.h1
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_ioctl.c10
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_texmem.c10
4 files changed, 22 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c b/src/mesa/drivers/dri/radeon/radeon_context.c
index 31ac5f253a..4229d5cb5e 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.c
+++ b/src/mesa/drivers/dri/radeon/radeon_context.c
@@ -201,6 +201,7 @@ static const struct dri_debug_control debug_control[] =
{ "dri", DEBUG_DRI },
{ "dma", DEBUG_DMA },
{ "san", DEBUG_SANITY },
+ { "sync", DEBUG_SYNC },
{ NULL, 0 }
};
diff --git a/src/mesa/drivers/dri/radeon/radeon_context.h b/src/mesa/drivers/dri/radeon/radeon_context.h
index b97e58a28d..c180313096 100644
--- a/src/mesa/drivers/dri/radeon/radeon_context.h
+++ b/src/mesa/drivers/dri/radeon/radeon_context.h
@@ -848,6 +848,7 @@ extern int RADEON_DEBUG;
#define DEBUG_DRI 0x200
#define DEBUG_DMA 0x400
#define DEBUG_SANITY 0x800
+#define DEBUG_SYNC 0x1000
#endif
#endif /* __RADEON_CONTEXT_H__ */
diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.c b/src/mesa/drivers/dri/radeon/radeon_ioctl.c
index ee1104d91a..2378285a69 100644
--- a/src/mesa/drivers/dri/radeon/radeon_ioctl.c
+++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.c
@@ -310,6 +310,11 @@ void radeonFlushElts( radeonContextPtr rmesa )
cmd[1] |= (dwords - 3) << 16;
cmd[3] |= nr << RADEON_CP_VC_CNTL_NUM_SHIFT;
#endif
+
+ if (RADEON_DEBUG & DEBUG_SYNC) {
+ fprintf(stderr, "%s: Syncing\n", __FUNCTION__);
+ radeonFinish( rmesa->glCtx );
+ }
}
@@ -580,6 +585,11 @@ static int radeonFlushCmdBufLocked( radeonContextPtr rmesa,
if (ret)
fprintf(stderr, "drmCommandWrite: %d\n", ret);
+ if (RADEON_DEBUG & DEBUG_SYNC) {
+ fprintf(stderr, "\nSyncing in %s\n\n", __FUNCTION__);
+ radeonWaitForIdleLocked( rmesa );
+ }
+
out:
rmesa->store.primnr = 0;
rmesa->store.statenr = 0;
diff --git a/src/mesa/drivers/dri/radeon/radeon_texmem.c b/src/mesa/drivers/dri/radeon/radeon_texmem.c
index 6ac00c27b2..d910a6c15a 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texmem.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texmem.c
@@ -322,6 +322,11 @@ int radeonUploadTexImages( radeonContextPtr rmesa, radeonTexObjPtr t, GLuint fac
if ( !t || t->base.totalSize == 0 )
return 0;
+ if (RADEON_DEBUG & DEBUG_SYNC) {
+ fprintf(stderr, "%s: Syncing\n", __FUNCTION__ );
+ radeonFinish( rmesa->glCtx );
+ }
+
LOCK_HARDWARE( rmesa );
if ( t->base.memBlock == NULL ) {
@@ -364,5 +369,10 @@ int radeonUploadTexImages( radeonContextPtr rmesa, radeonTexObjPtr t, GLuint fac
t->base.dirty_images[face] = 0;
}
+ if (RADEON_DEBUG & DEBUG_SYNC) {
+ fprintf(stderr, "%s: Syncing\n", __FUNCTION__ );
+ radeonFinish( rmesa->glCtx );
+ }
+
return 0;
}