iris: don't mark contains_draw = false when chaining batches
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 3 Oct 2018 03:09:01 +0000 (20:09 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:09 +0000 (10:26 -0800)
chaining to a new batch reuses create_batch(), but we don't need to do
the work of pinning BOs we inherit from a previous batch...when that is
actually part of the same execbuf invocation.

instead, just flag it when setting primary_batch_size = 0, in
iris_batch_reset

src/gallium/drivers/iris/iris_batch.c

index b35466d69f1f597b58dd2f6fddde7d5fe9762eb9..afc01109615df361142a12dc9c4718226453f298 100644 (file)
@@ -233,7 +233,6 @@ create_batch(struct iris_batch *batch)
    batch->bo->kflags |= EXEC_OBJECT_CAPTURE;
    batch->map = iris_bo_map(NULL, batch->bo, MAP_READ | MAP_WRITE);
    batch->map_next = batch->map;
-   batch->contains_draw = false;
 
    add_exec_bo(batch, batch->bo);
 }
@@ -247,6 +246,7 @@ iris_batch_reset(struct iris_batch *batch)
    }
    batch->last_bo = batch->bo;
    batch->primary_batch_size = 0;
+   batch->contains_draw = false;
 
    create_batch(batch);
    assert(batch->bo->index == 0);