diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c 
b/src/gallium/drivers/nouveau/nouveau_screen.c
index a9426df..0918537 100644
--- a/src/gallium/drivers/nouveau/nouveau_screen.c
+++ b/src/gallium/drivers/nouveau/nouveau_screen.c
@@ -166,7 +166,8 @@ nouveau_screen_fence_finish(struct pipe_screen *screen,
                            struct pipe_fence_handle *pfence,
                            unsigned flags)
 {
-       return 0;
+       struct nouveau_screen *ns = nouveau_screen(screen);
+       return nouveau_channel_wait(ns->channel);
 }
 
 
diff --git a/src/gallium/drivers/nvfx/nvfx_context.c 
b/src/gallium/drivers/nvfx/nvfx_context.c
index 6c8934d..046ad84 100644
--- a/src/gallium/drivers/nvfx/nvfx_context.c
+++ b/src/gallium/drivers/nvfx/nvfx_context.c
@@ -24,8 +24,11 @@ nvfx_flush(struct pipe_context *pipe, unsigned flags,
        }
 
        FIRE_RING(chan);
+/* Gallium only checks if *fence is non-zero on return. fence here is null 
when called
+ * from glFlush, non-null when called from glFinish. The real fence lives 
only in the kernel.
+ */
        if (fence)
-               *fence = NULL;
+               *fence = 1;
 }
 
 static void
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to