Mesa (master): r600g: Handle PIPE_TRANSFER_MAP_DIRECTLY.

Michel Dänzer daenzer at kemper.freedesktop.org
Fri Aug 26 09:32:14 PDT 2011


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

Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Mon Aug 22 15:44:43 2011 +0200

r600g: Handle PIPE_TRANSFER_MAP_DIRECTLY.

If the state tracker tries to map the resource directly but we can't or don't
want to do that, fail to create a transfer.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

---

 src/gallium/drivers/r600/r600_texture.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index e41fe11..7c1bd9d 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -647,6 +647,9 @@ struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx,
 		(texture->flags & R600_RESOURCE_FLAG_TRANSFER))
 		use_staging_texture = FALSE;
 
+	if (use_staging_texture && (usage & PIPE_TRANSFER_MAP_DIRECTLY))
+		return NULL;
+
 	trans = CALLOC_STRUCT(r600_transfer);
 	if (trans == NULL)
 		return NULL;



More information about the mesa-commit mailing list