add sync debugging to the radeon driver
authorDave Airlie <airliedfreedesktop.org>
Sun, 23 Jan 2005 06:27:08 +0000 (06:27 +0000)
committerDave Airlie <airliedfreedesktop.org>
Sun, 23 Jan 2005 06:27:08 +0000 (06:27 +0000)
src/mesa/drivers/dri/radeon/radeon_context.c
src/mesa/drivers/dri/radeon/radeon_context.h
src/mesa/drivers/dri/radeon/radeon_ioctl.c
src/mesa/drivers/dri/radeon/radeon_texmem.c

index 31ac5f253a3b16b895ef26369172924e3d0c3152..4229d5cb5e55da7932209f4aaab7f63c878ad36d 100644 (file)
@@ -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 }
 };
 
index b97e58a28d920aa0f4f1dea892cac8addaf9af5f..c1803130969a4c7a8777d77ef05cf1b6657f8e99 100644 (file)
@@ -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__ */
index ee1104d91a5a184244cc8081dbf8c82c978e412f..2378285a69920e25044afeb12de2c72b1c2f14c8 100644 (file)
@@ -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;
index 6ac00c27b2c5d62766cd125e65741191a42bf8b4..d910a6c15a5e90ff7b69cdea3a34689d92143bff 100644 (file)
@@ -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;
 }