r300: fix front buffer rendering properly fixes tests in glean
authorDave Airlie <airlied@redhat.com>
Wed, 11 Feb 2009 06:50:19 +0000 (16:50 +1000)
committerDave Airlie <airlied@redhat.com>
Wed, 11 Feb 2009 06:50:19 +0000 (16:50 +1000)
src/mesa/drivers/dri/r300/r300_state.c

index e5939afeeb3f076af67113650ae0a967496f2a75..bdb67a1afd3dd646bf9ec98bc92bc29d2408166a 100644 (file)
@@ -2740,6 +2740,27 @@ void r300UpdateClipPlanes( GLcontext *ctx )
        }
 }
 
+static void r300DrawBuffer( GLcontext *ctx, GLenum mode )
+{
+       r300ContextPtr rmesa = R300_CONTEXT(ctx);
+       if (RADEON_DEBUG & DEBUG_DRI)
+               fprintf(stderr, "%s %s\n", __FUNCTION__,
+                       _mesa_lookup_enum_by_nr( mode ));
+
+       R300_FIREVERTICES(rmesa);       /* don't pipeline cliprect changes */
+
+       radeonSetCliprects( &rmesa->radeon );
+       radeonUpdatePageFlipping(&rmesa->radeon);
+}
+
+static void r300ReadBuffer( GLcontext *ctx, GLenum mode )
+{
+       if (RADEON_DEBUG & DEBUG_DRI)
+               fprintf(stderr, "%s %s\n", __FUNCTION__,
+                       _mesa_lookup_enum_by_nr( mode ));
+
+};
+
 /**
  * Initialize driver's state callback functions
  */
@@ -2782,4 +2803,7 @@ void r300InitStateFuncs(struct dd_function_table *functions)
        functions->RenderMode = r300RenderMode;
 
        functions->ClipPlane = r300ClipPlane;
+
+       functions->DrawBuffer           = r300DrawBuffer;
+       functions->ReadBuffer           = r300ReadBuffer;
 }