From: Nicolai Hähnle <nicolai.haeh...@amd.com>

This accomodates a streaming pattern where the discard flag is set when the
application wraps back to the beginning of the buffer.
---
 src/gallium/drivers/radeon/r600_buffer_common.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c 
b/src/gallium/drivers/radeon/r600_buffer_common.c
index 484f5c8..aeb9a20 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -280,7 +280,10 @@ static void *r600_buffer_transfer_map(struct pipe_context 
*ctx,
                if (r600_rings_is_buffer_referenced(rctx, rbuffer->buf, 
RADEON_USAGE_READWRITE) ||
                    !rctx->ws->buffer_wait(rbuffer->buf, 0, 
RADEON_USAGE_READWRITE)) {
                        rctx->invalidate_buffer(&rctx->b, &rbuffer->b.b);
+               } else {
+                       util_range_set_empty(&rbuffer->valid_buffer_range);
                }
+
                /* At this point, the buffer is always idle. */
                usage |= PIPE_TRANSFER_UNSYNCHRONIZED;
        }
-- 
2.5.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to