i965: Fix type of gl_FragData[] dereference for FB write.
[mesa.git] / src / mesa / drivers / dri / mga / mgaioctl.h
index 2d959d8246d847f10dba1f0c8f0bd934d3c3b5f1..7a8660d2035105040dddfb5cc4983f3702176a62 100644 (file)
@@ -25,7 +25,6 @@
  *    Keith Whitwell <keith@tungstengraphics.com>
  *    Gareth Hughes <gareth@valinux.com>
  */
-/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgaioctl.h,v 1.11 2002/10/30 12:51:36 alanh Exp $ */
 
 #ifndef MGA_IOCTL_H
 #define MGA_IOCTL_H
 #include "mgacontext.h"
 #include "mga_xmesa.h"
 
-void mgaSwapBuffers( __DRIdrawablePrivate *dPriv );
+void mgaCopyBuffer( __DRIdrawable *dPriv );
 void mgaWaitForVBlank( mgaContextPtr mmesa );
 
-GLuint *mgaAllocVertexDwords( mgaContextPtr mmesa, int dwords );
-
-
 void mgaGetILoadBufferLocked( mgaContextPtr mmesa );
-drmBufPtr mgaGetBufferLocked( mgaContextPtr mmesa );
-
-
 void mgaFireILoadLocked( mgaContextPtr mmesa,
                         GLuint offset, GLuint length );
 
 void mgaWaitAgeLocked( mgaContextPtr mmesa, int age );
-void mgaWaitAge( mgaContextPtr mmesa, int age );
 
 void mgaFlushVertices( mgaContextPtr mmesa );
 void mgaFlushVerticesLocked( mgaContextPtr mmesa );
-void mgaReleaseBufLocked( mgaContextPtr mmesa, drmBufPtr buffer );
 int mgaFlushDMA( int fd, drmLockFlags flags );
 
-void mgaDDFlush( GLcontext *ctx );
-void mgaDDFinish( GLcontext *ctx );
-
-void mgaDDInitIoctlFuncs( GLcontext *ctx );
+void mgaInitIoctlFuncs( struct dd_function_table *functions );
 
 #define FLUSH_BATCH(mmesa) do {                                                \
         if (MGA_DEBUG&DEBUG_VERBOSE_IOCTL)                             \
@@ -73,19 +61,27 @@ void mgaDDInitIoctlFuncs( GLcontext *ctx );
 
 extern drmBufPtr mga_get_buffer_ioctl( mgaContextPtr mmesa );
 
-static __inline
+static INLINE
 GLuint *mgaAllocDmaLow( mgaContextPtr mmesa, int bytes )
 {
    GLuint *head;
 
-   if (!mmesa->vertex_dma_buffer) {
+   /* If there is no DMA buffer currently allocated or the currently
+    * allocated DMA buffer doesn't have enough room left for this request,
+    * a new buffer will need to be allocated.
+    */
+   if ( (mmesa->vertex_dma_buffer == NULL)
+       || ((mmesa->vertex_dma_buffer->used + bytes) 
+           > mmesa->vertex_dma_buffer->total) ) {
       LOCK_HARDWARE( mmesa );
-      mmesa->vertex_dma_buffer = mga_get_buffer_ioctl( mmesa );
-      UNLOCK_HARDWARE( mmesa );
-   } else if (mmesa->vertex_dma_buffer->used + bytes >
-             mmesa->vertex_dma_buffer->total) {
-      LOCK_HARDWARE( mmesa );
-      mgaFlushVerticesLocked( mmesa );
+
+      /* In the case where the existing buffer does not have enough room,
+       * we need to flush it out to the hardware.
+       */
+      if ( mmesa->vertex_dma_buffer != NULL ) {
+        mgaFlushVerticesLocked( mmesa );
+      }
+          
       mmesa->vertex_dma_buffer = mga_get_buffer_ioctl( mmesa );
       UNLOCK_HARDWARE( mmesa );
    }