summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/evergreen_compute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/r600/evergreen_compute.c')
-rw-r--r--src/gallium/drivers/r600/evergreen_compute.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c
index 8657071e4c6..c0dd0f34914 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -970,14 +970,12 @@ void *r600_compute_global_transfer_map(
struct pipe_resource *dst;
unsigned offset = box->x;
- if (buffer->chunk->real_buffer) {
- dst = (struct pipe_resource*)buffer->chunk->real_buffer;
- }
- else {
- dst = (struct pipe_resource*)buffer->chunk->pool->bo;
- offset += (buffer->chunk->start_in_dw * 4);
+ if (is_item_in_pool(buffer->chunk)) {
+ compute_memory_demote_item(pool, buffer->chunk, ctx_);
}
+ dst = (struct pipe_resource*)buffer->chunk->real_buffer;
+
if (usage & PIPE_TRANSFER_READ)
buffer->chunk->status |= ITEM_MAPPED_FOR_READING;