Mesa (master): r600g,radeonsi: skip busy-checking for DISCARD_RANGE if it has been done already

Marek Olšák mareko at kemper.freedesktop.org
Tue Feb 4 19:27:35 UTC 2014


Module: Mesa
Branch: master
Commit: 08f0344cf395b7ceee20c4c4030946c9334895bc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=08f0344cf395b7ceee20c4c4030946c9334895bc

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Feb  1 14:59:28 2014 +0100

r600g,radeonsi: skip busy-checking for DISCARD_RANGE if it has been done already

---

 src/gallium/drivers/radeon/r600_buffer_common.c |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/gallium/drivers/radeon/r600_buffer_common.c b/src/gallium/drivers/radeon/r600_buffer_common.c
index 1a9a5dd..5b92825 100644
--- a/src/gallium/drivers/radeon/r600_buffer_common.c
+++ b/src/gallium/drivers/radeon/r600_buffer_common.c
@@ -243,8 +243,12 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx,
 				data += box->x % R600_MAP_BUFFER_ALIGNMENT;
 				return r600_buffer_get_transfer(ctx, resource, level, usage, box,
 								ptransfer, data, staging, offset);
+			} else {
+				return NULL; /* error, shouldn't occur though */
 			}
 		}
+		/* At this point, the buffer is always idle (we checked it above). */
+		usage |= PIPE_TRANSFER_UNSYNCHRONIZED;
 	}
 
 	data = r600_buffer_map_sync_with_rings(rctx, rbuffer, usage);




More information about the mesa-commit mailing list