ilo: no writeback without PIPE_TRANSFER_WRITE
authorChia-I Wu <olvaffe@gmail.com>
Wed, 15 May 2013 00:50:34 +0000 (08:50 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Wed, 15 May 2013 07:08:54 +0000 (15:08 +0800)
We should not write staging data back when PIPE_TRANSFER_WRITE is not set.

src/gallium/drivers/ilo/ilo_transfer.c

index 3b4a2136c814020522611b82fe074116d2052366..3d38fe884522f15637a704e2cd5a1c89cf706734 100644 (file)
@@ -188,6 +188,11 @@ tex_staging_sys_unmap(struct ilo_context *ilo,
    struct pipe_transfer *dst_xfer;
    void *dst;
 
+   if (!(xfer->base.usage & PIPE_TRANSFER_WRITE)) {
+      FREE(xfer->staging_sys);
+      return;
+   }
+
    dst = ilo->base.transfer_map(&ilo->base,
          xfer->base.resource, xfer->base.level,
          PIPE_TRANSFER_WRITE |