iris: Avoid double flushing in iris_transfer_flush_region when copying.
My intention was to have iris_copy_region not do flushing, and leave that up to the callers. iris_resource_copy_region needs to do this, but iris_transfer_flush_region was already doing it. The net result was that we were doing it twice for transfers. So, move the flushing from iris_copy_region to iris_resource_copy_region so that it only happens in the callers as I intended.
This commit is contained in:
@@ -572,10 +572,6 @@ iris_copy_region(struct blorp_context *blorp,
|
|||||||
blorp_batch_init(&ice->blorp, &blorp_batch, batch, 0);
|
blorp_batch_init(&ice->blorp, &blorp_batch, batch, 0);
|
||||||
blorp_buffer_copy(&blorp_batch, src_addr, dst_addr, src_box->width);
|
blorp_buffer_copy(&blorp_batch, src_addr, dst_addr, src_box->width);
|
||||||
blorp_batch_finish(&blorp_batch);
|
blorp_batch_finish(&blorp_batch);
|
||||||
|
|
||||||
iris_flush_and_dirty_for_history(ice, batch,
|
|
||||||
(struct iris_resource *) dst,
|
|
||||||
"cache history: post copy_region");
|
|
||||||
} else {
|
} else {
|
||||||
// XXX: what about one surface being a buffer and not the other?
|
// XXX: what about one surface being a buffer and not the other?
|
||||||
|
|
||||||
@@ -642,6 +638,9 @@ iris_resource_copy_region(struct pipe_context *ctx,
|
|||||||
iris_copy_region(&ice->blorp, batch, &s_dst_res->base, dst_level, dstx,
|
iris_copy_region(&ice->blorp, batch, &s_dst_res->base, dst_level, dstx,
|
||||||
dsty, dstz, &s_src_res->base, src_level, src_box);
|
dsty, dstz, &s_src_res->base, src_level, src_box);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iris_flush_and_dirty_for_history(ice, batch, (struct iris_resource *) dst,
|
||||||
|
"cache history: post copy_region");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Reference in New Issue
Block a user