Module: Mesa
Branch: master
Commit: f383cf9d410e3764eda9321f75fd324f6a15138d
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f383cf9d410e3764eda9321f75fd324f6a15138d

Author: Rob Clark <robdcl...@gmail.com>
Date:   Tue Nov 14 14:15:27 2017 -0500

freedreno/a5xx: split out helper for pipeline stalls

We need a similar thing for indirect draws.

Signed-off-by: Rob Clark <robdcl...@gmail.com>

---

 src/gallium/drivers/freedreno/a5xx/fd5_compute.c |  7 +------
 src/gallium/drivers/freedreno/a5xx/fd5_context.h | 12 ++++++++++++
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_compute.c 
b/src/gallium/drivers/freedreno/a5xx/fd5_compute.c
index 362ab1dc54..55cddadf60 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_compute.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_compute.c
@@ -160,12 +160,7 @@ fd5_launch_grid(struct fd_context *ctx, const struct 
pipe_grid_info *info)
        if (info->indirect) {
                struct fd_resource *rsc = fd_resource(info->indirect);
 
-               OUT_PKT7(ring, CP_EVENT_WRITE, 4);
-               OUT_RING(ring, CACHE_FLUSH_TS);
-               OUT_RELOCW(ring, fd5_context(ctx)->blit_mem, 0, 0, 0);  /* 
ADDR_LO/HI */
-               OUT_RING(ring, 0x00000000);
-
-               OUT_WFI5(ring);
+               fd5_emit_flush(ctx, ring);
 
                OUT_PKT7(ring, CP_EXEC_CS_INDIRECT, 4);
                OUT_RING(ring, 0x00000000);
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_context.h 
b/src/gallium/drivers/freedreno/a5xx/fd5_context.h
index f4d885b40f..37573460c2 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_context.h
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_context.h
@@ -93,4 +93,16 @@ fd5_context(struct fd_context *ctx)
 struct pipe_context *
 fd5_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags);
 
+/* helper for places where we need to stall CP to wait for previous draws: */
+static inline void
+fd5_emit_flush(struct fd_context *ctx, struct fd_ringbuffer *ring)
+{
+       OUT_PKT7(ring, CP_EVENT_WRITE, 4);
+       OUT_RING(ring, CACHE_FLUSH_TS);
+       OUT_RELOCW(ring, fd5_context(ctx)->blit_mem, 0, 0, 0);  /* ADDR_LO/HI */
+       OUT_RING(ring, 0x00000000);
+
+       OUT_WFI5(ring);
+}
+
 #endif /* FD5_CONTEXT_H_ */

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to