r600g,radeonsi: Only set use_staging_texture = TRUE once
authorMichel Dänzer <michel.daenzer@amd.com>
Wed, 8 Oct 2014 07:05:36 +0000 (16:05 +0900)
committerMichel Dänzer <michel@daenzer.net>
Wed, 15 Oct 2014 07:26:30 +0000 (16:26 +0900)
No need to check for setting the flag after we set it already.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeon/r600_texture.c

index 13df49533a7da822a8db110ecb4525aaf165456e..1d4e966b158815942759da95b30babdaa6e1c8be 100644 (file)
@@ -924,19 +924,16 @@ static void *r600_texture_transfer_map(struct pipe_context *ctx,
         * the CPU is much happier reading out of cached system memory
         * than uncached VRAM.
         */
-       if (rtex->surface.level[0].mode >= RADEON_SURF_MODE_1D)
+       if (rtex->surface.level[0].mode >= RADEON_SURF_MODE_1D) {
                use_staging_texture = TRUE;
-
-       /* Untiled buffers in VRAM, which is slow for CPU reads */
-       if ((usage & PIPE_TRANSFER_READ) && !(usage & PIPE_TRANSFER_MAP_DIRECTLY) &&
+       } else if ((usage & PIPE_TRANSFER_READ) && !(usage & PIPE_TRANSFER_MAP_DIRECTLY) &&
            (rtex->resource.domains == RADEON_DOMAIN_VRAM)) {
+               /* Untiled buffers in VRAM, which is slow for CPU reads */
                use_staging_texture = TRUE;
-       }
-
-       /* Use a staging texture for uploads if the underlying BO is busy. */
-       if (!(usage & PIPE_TRANSFER_READ) &&
+       } else if (!(usage & PIPE_TRANSFER_READ) &&
            (r600_rings_is_buffer_referenced(rctx, rtex->resource.cs_buf, RADEON_USAGE_READWRITE) ||
             rctx->ws->buffer_is_busy(rtex->resource.buf, RADEON_USAGE_READWRITE))) {
+               /* Use a staging texture for uploads if the underlying BO is busy. */
                use_staging_texture = TRUE;
        }