summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/radeonsi/si_dma.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-08-24 00:04:11 -0400
committerMarek Olšák <[email protected]>2018-09-10 15:19:56 -0400
commit1119fe5c25db7ae6d5bf7480a3277f5ce91097f6 (patch)
tree84d63324799040cce47b83baa07eba355d026a66 /src/gallium/drivers/radeonsi/si_dma.c
parentbe0bd95abf69920fc11fb50384ffc2f886a5f9e8 (diff)
radeonsi: merge SI and CI dma_clear_buffer and remove the callback
also use assertions for the requirements that offset and size are a multiple of 4. Tested-by: Dieter Nützel <[email protected]>
Diffstat (limited to 'src/gallium/drivers/radeonsi/si_dma.c')
-rw-r--r--src/gallium/drivers/radeonsi/si_dma.c40
1 files changed, 0 insertions, 40 deletions
diff --git a/src/gallium/drivers/radeonsi/si_dma.c b/src/gallium/drivers/radeonsi/si_dma.c
index da5bd47b5dd..046d8445ce3 100644
--- a/src/gallium/drivers/radeonsi/si_dma.c
+++ b/src/gallium/drivers/radeonsi/si_dma.c
@@ -77,45 +77,6 @@ static void si_dma_copy_buffer(struct si_context *ctx,
}
}
-static void si_dma_clear_buffer(struct si_context *sctx,
- struct pipe_resource *dst,
- uint64_t offset,
- uint64_t size,
- unsigned clear_value)
-{
- struct radeon_cmdbuf *cs = sctx->dma_cs;
- unsigned i, ncopy, csize;
- struct r600_resource *rdst = r600_resource(dst);
-
- if (!cs || offset % 4 != 0 || size % 4 != 0 ||
- dst->flags & PIPE_RESOURCE_FLAG_SPARSE) {
- sctx->b.clear_buffer(&sctx->b, dst, offset, size, &clear_value, 4);
- return;
- }
-
- /* Mark the buffer range of destination as valid (initialized),
- * so that transfer_map knows it should wait for the GPU when mapping
- * that range. */
- util_range_add(&rdst->valid_buffer_range, offset, offset + size);
-
- offset += rdst->gpu_address;
-
- /* the same maximum size as for copying */
- ncopy = DIV_ROUND_UP(size, SI_DMA_COPY_MAX_DWORD_ALIGNED_SIZE);
- si_need_dma_space(sctx, ncopy * 4, rdst, NULL);
-
- for (i = 0; i < ncopy; i++) {
- csize = MIN2(size, SI_DMA_COPY_MAX_DWORD_ALIGNED_SIZE);
- radeon_emit(cs, SI_DMA_PACKET(SI_DMA_PACKET_CONSTANT_FILL, 0,
- csize / 4));
- radeon_emit(cs, offset);
- radeon_emit(cs, clear_value);
- radeon_emit(cs, (offset >> 32) << 16);
- offset += csize;
- size -= csize;
- }
-}
-
static void si_dma_copy_tile(struct si_context *ctx,
struct pipe_resource *dst,
unsigned dst_level,
@@ -325,5 +286,4 @@ fallback:
void si_init_dma_functions(struct si_context *sctx)
{
sctx->dma_copy = si_dma_copy;
- sctx->dma_clear_buffer = si_dma_clear_buffer;
}