From: Marek Olšák <[email protected]>
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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev