From: Marek Olšák Date: Thu, 13 Sep 2012 18:20:46 +0000 (+0200) Subject: r600g: don't use a staging resource for large transfers X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e386972f5bcb59a37489ea627030315bf8961fd4;p=mesa.git r600g: don't use a staging resource for large transfers It kills performance if the resource is linear. --- diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c index 6de3d6a8645..1c52ff8c83b 100644 --- a/src/gallium/drivers/r600/r600_texture.c +++ b/src/gallium/drivers/r600/r600_texture.c @@ -592,13 +592,6 @@ bool r600_init_flushed_depth_texture(struct pipe_context *ctx, return true; } -/* Needs adjustment for pixelformat: - */ -static INLINE unsigned u_box_volume( const struct pipe_box *box ) -{ - return box->width * box->depth * box->height; -} - struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx, struct pipe_resource *texture, unsigned level, @@ -622,9 +615,6 @@ struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx, use_staging_texture = TRUE; } - if ((usage & PIPE_TRANSFER_READ) && u_box_volume(box) > 1024) - use_staging_texture = TRUE; - /* Use a staging texture for uploads if the underlying BO is busy. */ if (!(usage & PIPE_TRANSFER_READ) && (rctx->ws->cs_is_buffer_referenced(rctx->cs, rtex->resource.cs_buf, RADEON_USAGE_READWRITE) ||