diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2016-04-13 10:55:29 -0500 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2016-05-05 11:46:43 +0100 |
commit | 5880b1597163c05d9eb5ca276857bf3da606e40b (patch) | |
tree | c07cd7750ed59a31ca90f4096bdfe5d857a6ad59 | |
parent | 0faa3a36620a26ce6d77ae8172b4a93ee5760c88 (diff) |
gallium/radeon: handle failure when mapping staging buffer
Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
(cherry picked from commit a17911ceb11fbf14b296095a9b5c506295b73d99)
-rw-r--r-- | src/gallium/drivers/radeon/r600_buffer_common.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c index 1b0fbdb3c75..c53d6295f31 100644 --- a/src/gallium/drivers/radeon/r600_buffer_common.c +++ b/src/gallium/drivers/radeon/r600_buffer_common.c @@ -330,6 +330,10 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx, 0, 0, resource, level, box); data = r600_buffer_map_sync_with_rings(rctx, staging, PIPE_TRANSFER_READ); + if (!data) { + pipe_resource_reference((struct pipe_resource **)&staging, NULL); + return NULL; + } data += box->x % R600_MAP_BUFFER_ALIGNMENT; return r600_buffer_get_transfer(ctx, resource, level, usage, box, |