xa: export a common context flush function
authorJerome Glisse <jglisse@redhat.com>
Mon, 4 Mar 2013 17:26:18 +0000 (12:26 -0500)
committerRob Clark <robclark@freedesktop.org>
Thu, 25 Jul 2013 17:59:55 +0000 (13:59 -0400)
First step before moving flushing inside the ddx.

Signed-off-by: Jerome Glisse <jglisse@redhat.com>
src/gallium/state_trackers/xa/xa_composite.c
src/gallium/state_trackers/xa/xa_context.c
src/gallium/state_trackers/xa/xa_context.h
src/gallium/state_trackers/xa/xa_priv.h

index eb949b93cd194cf93d22ac2d33924aef1357be2f..a6bfa11a2f114d3f77ffd6d356d797bedbcc334f 100644 (file)
@@ -527,7 +527,7 @@ XA_EXPORT void
 xa_composite_done(struct xa_context *ctx)
 {
     renderer_draw_flush(ctx);
-    ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0);
+    xa_context_flush(ctx);
 
     ctx->comp = NULL;
     ctx->has_solid_color = FALSE;
index b31d555c50a0e8398a68d0f562727d520cdbae8e..badd47cd3fc00902ee5a7fc79a1dcb922b9fd828 100644 (file)
 #include "util/u_surface.h"
 #include "pipe/p_context.h"
 
+XA_EXPORT void
+xa_context_flush(struct xa_context *ctx)
+{
+       ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0);
+}
 
 XA_EXPORT struct xa_context *
 xa_context_default(struct xa_tracker *xa)
@@ -119,7 +124,7 @@ xa_surface_dma(struct xa_context *ctx,
        }
        pipe->transfer_unmap(pipe, transfer);
        if (to_surface)
-           pipe->flush(pipe, &ctx->last_fence, 0);
+           xa_context_flush(ctx);
     }
     return XA_ERR_NONE;
 }
@@ -139,9 +144,9 @@ xa_surface_map(struct xa_context *ctx,
        return NULL;
 
     if (usage & XA_MAP_READ)
-       transfer_direction = PIPE_TRANSFER_READ;
+       transfer_direction |= PIPE_TRANSFER_READ;
     if (usage & XA_MAP_WRITE)
-       transfer_direction = PIPE_TRANSFER_WRITE;
+       transfer_direction |= PIPE_TRANSFER_WRITE;
 
     if (!transfer_direction)
        return NULL;
@@ -244,9 +249,9 @@ xa_copy_done(struct xa_context *ctx)
 {
     if (!ctx->simple_copy) {
           renderer_draw_flush(ctx);
-          ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0);
+          xa_context_flush(ctx);
     } else
-       ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0);
+       xa_context_flush(ctx);
 }
 
 static void
@@ -325,7 +330,7 @@ XA_EXPORT void
 xa_solid_done(struct xa_context *ctx)
 {
     renderer_draw_flush(ctx);
-    ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0);
+    xa_context_flush(ctx);
 
     ctx->comp = NULL;
     ctx->has_solid_color = FALSE;
index b547abf96a33d7f5ecd98232c08dc5e78ba9c75e..202b8e56e23022622ba178e129a24d547b2c3434 100644 (file)
@@ -40,6 +40,8 @@ extern struct xa_context *xa_context_create(struct xa_tracker *xa);
 
 extern void xa_context_destroy(struct xa_context *r);
 
+extern void xa_context_flush(struct xa_context *ctx);
+
 /**
  * xa_yuv_planar_blit - 2D blit with color conversion and scaling.
  *
index de4639a41a88e227a986b76ff3a96e2c2de8a40b..2ab11b82b26a972e17d677ee9be136240426804a 100644 (file)
@@ -205,6 +205,9 @@ struct xa_shader xa_shaders_get(struct xa_shaders *shaders,
 /*
  * xa_context.c
  */
+extern void
+xa_context_flush(struct xa_context *ctx);
+
 extern int
 xa_ctx_srf_create(struct xa_context *ctx, struct xa_surface *dst);