radeon: Move r600_need_dma_space to common code
authorNiels Ole Salscheider <niels_ole@salscheider-online.de>
Mon, 17 Mar 2014 17:48:05 +0000 (18:48 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 20 Mar 2014 16:21:16 +0000 (17:21 +0100)
Signed-off-by: Niels Ole Salscheider <niels_ole@salscheider-online.de>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/r600/evergreen_hw_context.c
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_hw_context.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h

index 083b6978c5eaba21027a2e335f98acf1991897db..a4338764eede40cf97a9c4d5ce27698c428aa824 100644 (file)
@@ -62,7 +62,7 @@ void evergreen_dma_copy(struct r600_context *rctx,
        }
        ncopy = (size / 0x000fffff) + !!(size % 0x000fffff);
 
-       r600_need_dma_space(rctx, ncopy * 5);
+       r600_need_dma_space(&rctx->b, ncopy * 5);
        for (i = 0; i < ncopy; i++) {
                csize = size < 0x000fffff ? size : 0x000fffff;
                /* emit reloc before writting cs so that cs is always in consistent state */
index 05cc3ef4cc22afa118d4936c91ccf356157a0ed3..b929f178351bff50af9325a55b16fae07cbc785c 100644 (file)
@@ -3295,7 +3295,7 @@ static void evergreen_dma_copy_tile(struct r600_context *rctx,
 
        size = (copy_height * pitch) >> 2;
        ncopy = (size / 0x000fffff) + !!(size % 0x000fffff);
-       r600_need_dma_space(rctx, ncopy * 9);
+       r600_need_dma_space(&rctx->b, ncopy * 9);
 
        for (i = 0; i < ncopy; i++) {
                cheight = copy_height;
index 3a3b3d58c15c5130841f6d1afc7d80753c7931e2..75723be598f05e49f4c0f4fa6a0471fb57014cc8 100644 (file)
@@ -440,16 +440,6 @@ void r600_cp_dma_copy_buffer(struct r600_context *rctx,
                         R600_CONTEXT_INV_TEX_CACHE;
 }
 
-void r600_need_dma_space(struct r600_context *ctx, unsigned num_dw)
-{
-       /* The number of dwords we already used in the DMA so far. */
-       num_dw += ctx->b.rings.dma.cs->cdw;
-       /* Flush if there's not enough space. */
-       if (num_dw > RADEON_MAX_CMDBUF_DWORDS) {
-               ctx->b.rings.dma.flush(ctx, RADEON_FLUSH_ASYNC);
-       }
-}
-
 void r600_dma_copy(struct r600_context *rctx,
                struct pipe_resource *dst,
                struct pipe_resource *src,
@@ -475,7 +465,7 @@ void r600_dma_copy(struct r600_context *rctx,
        shift = 2;
        ncopy = (size / 0xffff) + !!(size % 0xffff);
 
-       r600_need_dma_space(rctx, ncopy * 5);
+       r600_need_dma_space(&rctx->b, ncopy * 5);
        for (i = 0; i < ncopy; i++) {
                csize = size < 0xffff ? size : 0xffff;
                /* emit reloc before writting cs so that cs is always in consistent state */
index a3827e3ceeaad9722d67ca8e5165ac116d685273..0472eaa7d04dca2ccaa7b16542aea973905c026f 100644 (file)
@@ -586,7 +586,6 @@ void r600_context_flush(struct r600_context *ctx, unsigned flags);
 void r600_begin_new_cs(struct r600_context *ctx);
 void r600_flush_emit(struct r600_context *ctx);
 void r600_need_cs_space(struct r600_context *ctx, unsigned num_dw, boolean count_draw_in);
-void r600_need_dma_space(struct r600_context *ctx, unsigned num_dw);
 void r600_cp_dma_copy_buffer(struct r600_context *rctx,
                             struct pipe_resource *dst, uint64_t dst_offset,
                             struct pipe_resource *src, uint64_t src_offset,
index 39e38f4dd0d4e1e1ec445cf11685450e4cc93fb0..6c8222b90af1deaf2c0dc90183cbf4868726f314 100644 (file)
@@ -2856,7 +2856,7 @@ static boolean r600_dma_copy_tile(struct r600_context *rctx,
         */
        cheight = ((0x0000ffff << 2) / pitch) & 0xfffffff8;
        ncopy = (copy_height / cheight) + !!(copy_height % cheight);
-       r600_need_dma_space(rctx, ncopy * 7);
+       r600_need_dma_space(&rctx->b, ncopy * 7);
 
        for (i = 0; i < ncopy; i++) {
                cheight = cheight > copy_height ? copy_height : cheight;
index 05ada1c4bb4ed64396f789388bf0acc437ce94ba..a5c140ab6aa98f953d9ff7fe8cf50df57b6dd559 100644 (file)
  * pipe_context
  */
 
+void r600_need_dma_space(struct r600_common_context *ctx, unsigned num_dw)
+{
+       /* The number of dwords we already used in the DMA so far. */
+       num_dw += ctx->rings.dma.cs->cdw;
+       /* Flush if there's not enough space. */
+       if (num_dw > RADEON_MAX_CMDBUF_DWORDS) {
+               ctx->rings.dma.flush(ctx, RADEON_FLUSH_ASYNC);
+       }
+}
+
 static void r600_memory_barrier(struct pipe_context *ctx, unsigned flags)
 {
 }
index 92883a05e6a578760897dc23ba66ea8eacb0bdb8..1815ff6003a057c48a8bd0dd835b92778562ff52 100644 (file)
@@ -409,6 +409,7 @@ void r600_screen_clear_buffer(struct r600_common_screen *rscreen, struct pipe_re
 struct pipe_resource *r600_resource_create_common(struct pipe_screen *screen,
                                                  const struct pipe_resource *templ);
 const char *r600_get_llvm_processor_name(enum radeon_family family);
+void r600_need_dma_space(struct r600_common_context *ctx, unsigned num_dw);
 
 /* r600_query.c */
 void r600_query_init(struct r600_common_context *rctx);