projects
/
mesa.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c3cc525
)
iris: cross batch flushing
author
Kenneth Graunke
<kenneth@whitecape.org>
Wed, 7 Nov 2018 05:34:58 +0000
(21:34 -0800)
committer
Kenneth Graunke
<kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:09 +0000
(10:26 -0800)
src/gallium/drivers/iris/iris_batch.c
patch
|
blob
|
history
diff --git
a/src/gallium/drivers/iris/iris_batch.c
b/src/gallium/drivers/iris/iris_batch.c
index 8f53dacb9dde7a2202c0d71f93caecc1bdbaafc4..7196691f73c5313c092f1da96cb3f682a874621c 100644
(file)
--- a/
src/gallium/drivers/iris/iris_batch.c
+++ b/
src/gallium/drivers/iris/iris_batch.c
@@
-205,6
+205,16
@@
add_exec_bo(struct iris_batch *batch, struct iris_bo *bo)
return index;
}
+ /* This is the first time our batch has seen this BO. Before we use it,
+ * we need to see if other batches reference it - if so, we should flush
+ * those first.
+ */
+ for (int b = 0; b < ARRAY_SIZE(batch->other_batches); b++) {
+ if (iris_batch_references(batch->other_batches[b], bo))
+ iris_batch_flush(batch->other_batches[b]);
+ }
+
+ /* Now, take a reference and add it to the validation list. */
iris_bo_reference(bo);
if (batch->exec_count == batch->exec_array_size) {