st/xorg: Flush context if necessary in ExaPrepareAccess.
authorMichel Dänzer <daenzer@vmware.com>
Thu, 27 Aug 2009 18:27:28 +0000 (20:27 +0200)
committerMichel Dänzer <daenzer@vmware.com>
Thu, 27 Aug 2009 18:27:28 +0000 (20:27 +0200)
src/gallium/state_trackers/xorg/xorg_exa.c

index 3c90c2c9429fc453d25ed8a12bfef5196c8b7178..e4d73f7eef7611029c94322a5c5694b8de68a4e3 100644 (file)
@@ -115,6 +115,10 @@ ExaPrepareAccess(PixmapPtr pPix, int index)
 
     if (priv->map_count++ == 0)
     {
+       if (exa->ctx->is_texture_referenced(exa->ctx, priv->tex, 0, 0) &
+           PIPE_REFERENCED_FOR_WRITE)
+           exa->ctx->flush(exa->ctx, 0, NULL);
+
        priv->map_transfer =
            exa->scrn->get_tex_transfer(exa->scrn, priv->tex, 0, 0, 0,
                                        PIPE_TRANSFER_READ_WRITE,