From: Marek Olšák <marek.ol...@amd.com> The invalidation is already implemented by the driver. --- src/gallium/drivers/radeon/r600_pipe_common.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index 5f6e0fc..44fb7ae 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -43,6 +43,18 @@ static void r600_memory_barrier(struct pipe_context *ctx, unsigned flags) { } +static void r600_resource_invalidate(struct pipe_context *ctx, + struct pipe_resource *res, + struct pipe_box *box) +{ + struct r600_common_context *rctx = (struct r600_common_context *)ctx; + + if (res->target == PIPE_BUFFER && + box->x == 0 && box->width == res->width0) { + rctx->invalidate_buffer(ctx, res); + } +} + static void r600_flush_dma_ring(void *ctx, unsigned flags) { struct r600_common_context *rctx = (struct r600_common_context *)ctx; @@ -82,6 +94,7 @@ bool r600_common_context_init(struct r600_common_context *rctx, rctx->b.transfer_unmap = u_transfer_unmap_vtbl; rctx->b.transfer_inline_write = u_default_transfer_inline_write; rctx->b.memory_barrier = r600_memory_barrier; + rctx->b.resource_invalidate = r600_resource_invalidate; r600_init_context_texture_functions(rctx); r600_streamout_init(rctx); -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev