Small cleanup:
authorFelix Kuehling <fxkuehl@gmx.de>
Fri, 21 Jan 2005 01:39:09 +0000 (01:39 +0000)
committerFelix Kuehling <fxkuehl@gmx.de>
Fri, 21 Jan 2005 01:39:09 +0000 (01:39 +0000)
* Remove some unused (mostly empty) functions
* Added context parameter to WAIT_IDLE_EMPTY[_LOCKED] for consistency
* Added debug messages to WAIT_IDLE_EMPTY[_LOCKED]
* Don't flush empty command buffers

src/mesa/drivers/dri/savage/savage_xmesa.c
src/mesa/drivers/dri/savage/savageioctl.c
src/mesa/drivers/dri/savage/savageioctl.h
src/mesa/drivers/dri/savage/savagespan.c
src/mesa/drivers/dri/savage/savagetex.c
src/mesa/drivers/dri/savage/savagetris.c

index 34f334817c5dea0e3657831424eec35abc8b207e..c2eb8d10b17145f7328a95039ade8c51dd363a47 100644 (file)
@@ -537,7 +537,7 @@ savageDestroyContext(__DRIcontextPrivate *driContextPriv)
       savageFlushVertices(imesa);
       savageReleaseIndexedVerts(imesa);
       savageFlushCmdBuf(imesa, GL_TRUE); /* release DMA buffer */
-      WAIT_IDLE_EMPTY;
+      WAIT_IDLE_EMPTY(imesa);
 
       /* update for multi-tex*/ 
       {
@@ -701,7 +701,7 @@ savageCloseFullScreen(__DRIcontextPrivate *driContextPriv)
     
     if (driContextPriv) {
       savageContextPtr imesa = (savageContextPtr) driContextPriv->driverPrivate;
-      WAIT_IDLE_EMPTY;
+      WAIT_IDLE_EMPTY(imesa);
       imesa->IsFullScreen = GL_FALSE;   
       imesa->savageScreen->frontOffset = imesa->backup_frontOffset;
       imesa->savageScreen->backOffset = imesa->backup_backOffset;
index 27747c3cd89894a734310f0b6811108b434a178d..d914aad38e0fb6de661d9f522768ad3b7cbd76e4 100644 (file)
@@ -455,30 +455,6 @@ void savageSwapBuffers( __DRIdrawablePrivate *dPriv )
 #endif
 }
 
-/* This waits for *everybody* to finish rendering -- overkill.
- */
-void savageDmaFinish( savageContextPtr imesa  ) 
-{
-    savageWaitEvent( imesa, savageEmitEventLocked( imesa, SAVAGE_WAIT_3D ) );
-}
-
-
-void savageRegetLockQuiescent( savageContextPtr imesa  ) 
-{
-    
-
-}
-
-void savageWaitAgeLocked( savageContextPtr imesa, int age  ) 
-{
-}
-
-
-void savageWaitAge( savageContextPtr imesa, int age  ) 
-{
-}
-
-
 unsigned int savageEmitEventLocked( savageContextPtr imesa, unsigned int flags )
 {
     drm_savage_event_emit_t event;
@@ -559,9 +535,15 @@ void savageFlushCmdBufLocked( savageContextPtr imesa, GLboolean discard )
     drm_savage_cmd_header_t *start;
     int ret;
 
+    if (!imesa->dmaVtxBuf.total)
+       discard = GL_FALSE;
+
     /* complete indexed drawing commands */
     savageFlushElts(imesa);
 
+    if (imesa->cmdBuf.write == imesa->cmdBuf.start && !discard)
+       return;
+
     /* If we lost the context we must restore the initial state (at
      * the start of the command buffer). */
     if (imesa->lostContext) {
@@ -570,9 +552,6 @@ void savageFlushCmdBufLocked( savageContextPtr imesa, GLboolean discard )
     } else
        start = imesa->cmdBuf.start;
 
-    if (!imesa->dmaVtxBuf.total)
-       discard = GL_FALSE;
-
     if ((SAVAGE_DEBUG & DEBUG_DMA) && discard)
        fprintf (stderr, "Discarding DMA buffer, used=%u\n",
                 imesa->dmaVtxBuf.used);
@@ -647,9 +626,7 @@ static void savageDDFlush( GLcontext *ctx )
        fprintf (stderr, "%s\n", __FUNCTION__);
     savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
     savageFlushVertices (imesa);
-    LOCK_HARDWARE(imesa);
-    savageFlushCmdBufLocked(imesa, GL_FALSE);
-    UNLOCK_HARDWARE(imesa);
+    savageFlushCmdBuf(imesa, GL_FALSE);
 }
 
 static void savageDDFinish( GLcontext *ctx  ) 
@@ -658,10 +635,8 @@ static void savageDDFinish( GLcontext *ctx  )
        fprintf (stderr, "%s\n", __FUNCTION__);
     savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
     savageFlushVertices (imesa);
-    LOCK_HARDWARE(imesa);
-    savageFlushCmdBufLocked(imesa, GL_FALSE);
-    savageDmaFinish (imesa);
-    UNLOCK_HARDWARE(imesa);
+    savageFlushCmdBuf(imesa, GL_FALSE);
+    WAIT_IDLE_EMPTY(imesa);
 }
 
 void savageDDInitIoctlFuncs( GLcontext *ctx )
index 8f50324c3f71cfa15d9dfb07fd572f2ce939fdad..c7ff0017fdeb3d6b8f617e958a298a3fcf6a1857 100644 (file)
 
 #include "savagecontext.h"
 
-void savageGetGeneralDmaBufferLocked( savageContextPtr mmesa ); 
-
 void savageFlushVertices( savageContextPtr mmesa ); 
 
-void savageFlushGeneralLocked( savageContextPtr imesa );
-void savageWaitAgeLocked( savageContextPtr imesa, int age );
-void savageWaitAge( savageContextPtr imesa, int age );
-
 unsigned int savageEmitEventLocked( savageContextPtr imesa, unsigned int flags );
 unsigned int savageEmitEvent( savageContextPtr imesa, unsigned int flags );
 void savageWaitEvent( savageContextPtr imesa, unsigned int event);
@@ -43,17 +37,22 @@ void savageWaitEvent( savageContextPtr imesa, unsigned int event);
 void savageFlushCmdBufLocked( savageContextPtr imesa, GLboolean discard );
 void savageFlushCmdBuf( savageContextPtr imesa, GLboolean discard );
 
-void savageDmaFinish( savageContextPtr imesa );
-
-void savageRegetLockQuiescent( savageContextPtr imesa );
-
 void savageDDInitIoctlFuncs( GLcontext *ctx );
 
 void savageSwapBuffers( __DRIdrawablePrivate *dPriv );
 
-#define WAIT_IDLE_EMPTY do { \
+#define WAIT_IDLE_EMPTY(imesa) do { \
+    if (SAVAGE_DEBUG & DEBUG_VERBOSE_MSG) \
+        fprintf (stderr, "WAIT_IDLE_EMPTY in %s\n", __FUNCTION__); \
     savageWaitEvent(imesa, \
-                   savageEmitEvent(imesa, SAVAGE_WAIT_3D|SAVAGE_WAIT_2D)); \
+                   savageEmitEvent(imesa, SAVAGE_WAIT_2D|SAVAGE_WAIT_3D)); \
+} while (0)
+
+#define WAIT_IDLE_EMPTY_LOCKED(imesa) do { \
+    if (SAVAGE_DEBUG & DEBUG_VERBOSE_MSG) \
+        fprintf (stderr, "WAIT_IDLE_EMPTY_LOCKED in %s\n", __FUNCTION__); \
+    savageWaitEvent(imesa, savageEmitEventLocked( \
+                       imesa, SAVAGE_WAIT_2D|SAVAGE_WAIT_3D)); \
 } while (0)
 
 #define FLUSH_BATCH(imesa) do { \
index 417fd3864cdb960009b9e961f7b0f582749049d2..8af0384b4457af3e698d05612cf049d24ec338c8 100644 (file)
@@ -259,7 +259,7 @@ savageCopyPixels( GLcontext *ctx,
 {
     savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
     FLUSH_BATCH(imesa);
-    WAIT_IDLE_EMPTY;
+    WAIT_IDLE_EMPTY(imesa);
     _swrast_CopyPixels(ctx, srcx, srcy, width, height, destx, desty, type);
 }
 static void
@@ -272,7 +272,7 @@ savageDrawPixels( GLcontext *ctx,
 {
     savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
     FLUSH_BATCH(imesa);
-    WAIT_IDLE_EMPTY;
+    WAIT_IDLE_EMPTY(imesa);
     _swrast_DrawPixels(ctx, x, y, width, height, format, type, packing, pixels);
 }
 static void
@@ -284,7 +284,7 @@ savageReadPixels( GLcontext *ctx,
 {
     savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
     FLUSH_BATCH(imesa);
-    WAIT_IDLE_EMPTY;
+    WAIT_IDLE_EMPTY(imesa);
     _swrast_ReadPixels(ctx, x, y, width, height, format, type, packing, pixels);
 }
 
@@ -295,7 +295,7 @@ static void savageSpanRenderStart( GLcontext *ctx )
 {
    savageContextPtr imesa = SAVAGE_CONTEXT(ctx);
    FLUSH_BATCH(imesa);
-   WAIT_IDLE_EMPTY;
+   WAIT_IDLE_EMPTY(imesa);
 }
 
 
index 62031f76c3b721ea07f71ab78777a7ec18867379..dd8b4e89043358f0678f6344487393ca5b5f4bbe 100644 (file)
@@ -800,7 +800,7 @@ int savageUploadTexImages( savageContextPtr imesa, savageTextureObjectPtr t )
       savageFlushVertices (imesa);
       LOCK_HARDWARE(imesa);
       savageFlushCmdBufLocked (imesa, GL_FALSE);
-      savageDmaFinish (imesa);
+      WAIT_IDLE_EMPTY_LOCKED(imesa);
       if (SAVAGE_DEBUG & DEBUG_VERBOSE_LRU)
         fprintf(stderr, "*");
 
index 4e0ad469a8b3568822321620fd539f3d7e9a7dd7..fdd0f12724d75378b10ec756267d3498302b172f 100644 (file)
@@ -557,7 +557,7 @@ savage_fallback_tri( savageContextPtr imesa,
    GLcontext *ctx = imesa->glCtx;
    SWvertex v[3];
    FLUSH_BATCH(imesa);
-   WAIT_IDLE_EMPTY;
+   WAIT_IDLE_EMPTY(imesa);
    _swsetup_Translate( ctx, v0, &v[0] );
    _swsetup_Translate( ctx, v1, &v[1] );
    _swsetup_Translate( ctx, v2, &v[2] );
@@ -573,7 +573,7 @@ savage_fallback_line( savageContextPtr imesa,
    GLcontext *ctx = imesa->glCtx;
    SWvertex v[2];
    FLUSH_BATCH(imesa);
-   WAIT_IDLE_EMPTY;
+   WAIT_IDLE_EMPTY(imesa);
    _swsetup_Translate( ctx, v0, &v[0] );
    _swsetup_Translate( ctx, v1, &v[1] );
    _swrast_Line( ctx, &v[0], &v[1] );
@@ -587,7 +587,7 @@ savage_fallback_point( savageContextPtr imesa,
    GLcontext *ctx = imesa->glCtx;
    SWvertex v[1];
    FLUSH_BATCH(imesa);
-   WAIT_IDLE_EMPTY;
+   WAIT_IDLE_EMPTY(imesa);
    _swsetup_Translate( ctx, v0, &v[0] );
    _swrast_Point( ctx, &v[0] );
 }