On Tuesday 14 May 2002 00:25, Michel wrote:
> I've left in a hack to allow export TDFX_DEBUG_TEXTURE=something to
> make it easy to switch on/off texture debugging. 
>
> Should apply against xf_4_2-branch.

Ugh,

Michel you are working with a somewhat "outdated" codebase.
May I force you to work with the DRI CVS trunk branch?

I rediffed against the DRI CVS trunk (see below). So I had to fix some stuff 
here and there. Hopefully I did it right.

DEBUG_VERBOSE_TEXTURE wasn't anylonger defined and tdfxTMDumpTexMem is 
undefined.

Mesa/demos> ./gears
libGL: XF86DRIGetClientDriverName: 1.0.0 tdfx (screen 0)
libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/tdfx_dri.so
libGL error: dlopen failed: /usr/X11R6/lib/modules/dri/tdfx_dri.so: undefined 
symbol: tdfxTMDumpTexMem

Regards,
        Dieter
-- 
Dieter Nützel
Graduate Student, Computer Science

University of Hamburg
Department of Computer Science
@home: [EMAIL PROTECTED]
diff -ru dri/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.c dri-tdfx/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.c
--- dri/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.c	Sat Feb 16 17:35:22 2002
+++ dri-tdfx/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.c	Tue May 14 15:03:53 2002
@@ -154,6 +154,10 @@
       FREE(fxMesa);
       return GL_FALSE;
    }
+
+   if (getenv("TDFX_DEBUG_TEXTURE"))
+      TDFX_DEBUG |= DEBUG_VERBOSE_TEXTURE;
+
    driContextPriv->driverPrivate = fxMesa;
 
    /* Mirror some important DRI state
diff -ru dri/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.h dri-tdfx/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.h
--- dri/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.h	Fri Mar  1 15:17:14 2002
+++ dri-tdfx/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_context.h	Tue May 14 04:34:40 2002
@@ -1008,7 +1008,7 @@
   }
 }
 
-#define DO_DEBUG		0
+#define DO_DEBUG		1
 #if DO_DEBUG
 extern int TDFX_DEBUG;
 #else
@@ -1022,6 +1022,7 @@
 #define DEBUG_VERBOSE_DRI	0x10
 #define DEBUG_VERBOSE_IOCTL	0x20
 #define DEBUG_VERBOSE_2D	0x40
+#define DEBUG_VERBOSE_TEXTURE	0x80
 
 #endif /* GLX_DIRECT_RENDERING */
 
diff -ru dri/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_texman.c dri-tdfx/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_texman.c
--- dri/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_texman.c	Sat Feb 16 17:35:23 2002
+++ dri-tdfx/xc/xc/lib/GL/mesa/src/drv/tdfx/tdfx_texman.c	Tue May 14 15:03:53 2002
@@ -64,16 +64,16 @@
     int totalUsed = 0;
 
     for (block = shared->tmFree[tmu]; block; block = block->next) {
-       assert( block->endAddr > 0 );
-       assert( block->startAddr <= shared->totalTexMem[tmu] );
-       assert( block->endAddr <= shared->totalTexMem[tmu] );
-       assert( (int) block->startAddr > prevStart );
-       assert( (int) block->startAddr >= prevEnd );
+       ASSERT( block->endAddr > 0 );
+       ASSERT( block->startAddr <= shared->totalTexMem[tmu] );
+       ASSERT( block->endAddr <= shared->totalTexMem[tmu] );
+       ASSERT( (int) block->startAddr > prevStart );
+       ASSERT( (int) block->startAddr >= prevEnd );
        prevStart = (int) block->startAddr;
        prevEnd = (int) block->endAddr;
        totalFree += (block->endAddr - block->startAddr);
     }
-    assert(totalFree == shared->freeTexMem[tmu]);
+    ASSERT(totalFree == shared->freeTexMem[tmu]);
 
     {
        struct gl_texture_object *obj;
@@ -83,12 +83,12 @@
           if (ti) {
              if (ti->isInTM) {
                 numRes++;
-                assert(ti->tm[0]);
-                if (ti->tm[tmu])
+/*		ASSERT(ti->tm[0]); */
+		if (ti->tm[tmu])
                    totalUsed += (ti->tm[tmu]->endAddr - ti->tm[tmu]->startAddr);
              }
              else {
-                assert(!ti->tm[0]);
+                ASSERT(!ti->tm[0]);
              }
           }
        }
@@ -98,7 +98,7 @@
            shared->freeTexMem[tmu], totalUsed, shared->totalTexMem[tmu],
            numObj, numRes);
 
-    assert(totalUsed + totalFree == shared->totalTexMem[tmu]);
+    ASSERT(totalUsed + totalFree == shared->totalTexMem[tmu]);
 }
 
 
@@ -121,7 +121,7 @@
            printf("  isInTM=%d  whichTMU=%d  lastTimeUsed=%d\n",
                   info->isInTM, info->whichTMU, info->lastTimeUsed);
            printf("    tm[0] = %p", info->tm[0]);
-           assert(info->tm[0]);
+/*	   ASSERT(info->tm[0]); */
            if (info->tm[0]) {
               printf("  tm startAddr = %d  endAddr = %d",
                      info->tm[0]->startAddr,
@@ -396,7 +396,11 @@
              (info->whichTMU == TDFX_TMU_SPLIT))) {
             GLuint age, lasttime;
 
-            assert(info->tm[0]);
+/*            ASSERT(info->tm[0]); */
+	    if (! info->tm[unit] ) {
+	       tdfxTMDumpTexMem ( fxMesa );
+	       return NULL;
+	    }
             lasttime = info->lastTimeUsed;
 
             if (lasttime > bindnumber)
@@ -469,7 +473,7 @@
 #endif
 
     if (shared->umaTexMemory) {
-        assert(tmu == TDFX_TMU0);
+        ASSERT(tmu == TDFX_TMU0);
     }
 
     _glthread_LOCK_MUTEX(mesaShared->Mutex);
@@ -545,7 +549,7 @@
     tdfxMemRange *block, *prev;
 
     if (shared->umaTexMemory) {
-       assert(tmu == TDFX_TMU0);
+       ASSERT(tmu == TDFX_TMU0);
     }
 
     if (!range)
@@ -561,7 +565,7 @@
     prev = NULL;
     block = shared->tmFree[tmu];
     while (block) {
-        assert(range->startAddr != block->startAddr);
+        ASSERT(range->startAddr != block->startAddr);
         if (range->startAddr > block->startAddr) {
             prev = block;
             block = block->next;
@@ -624,6 +628,10 @@
         char err[100];
         sprintf(err, "AllocTexMem returned NULL!  tmu=%d texmemsize=%d\n",
                (int) tmu, (int) texmemsize);
+
+	UNLOCK_HARDWARE( fxMesa );
+	exit( 1 );
+
         _mesa_problem(fxMesa->glCtx, err);
         return NULL;
     }
@@ -647,9 +655,9 @@
     GLint l;
     FxU32 targetTMU;
 
-    assert(tObj);
+    ASSERT(tObj);
     ti = TDFX_TEXTURE_DATA(tObj);
-    assert(ti);
+    ASSERT(ti);
     targetTMU = ti->whichTMU;
 
     switch (targetTMU) {
@@ -900,7 +908,7 @@
         break;
     case TDFX_TMU_SPLIT:
     case TDFX_TMU_BOTH:
-        assert(!shared->umaTexMemory);
+        ASSERT(!shared->umaTexMemory);
         RemoveRange_NoLock(fxMesa, TDFX_TMU0, ti->tm[TDFX_TMU0]);
         RemoveRange_NoLock(fxMesa, TDFX_TMU1, ti->tm[TDFX_TMU1]);
         break;
diff -ru dri/xc/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c dri-tdfx/xc/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
--- dri/xc/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c	Wed Jan 30 06:13:32 2002
+++ dri-tdfx/xc/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c	Tue May 14 15:03:53 2002
@@ -1971,6 +1971,8 @@
 	"\tresolution modes and/or a smaller virtual screen size\n");
   } else {
     pTDFX->texSize = pTDFX->backOffset - pTDFX->texOffset;
+    if (pTDFX->texSize > 256*256*6)
+           pTDFX->texSize = 256*256*6;
     xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Textures Memory %0.02f MB\n",
 		(float)pTDFX->texSize/1024.0/1024.0);
   }

Reply via email to