xfer->resource, xfer->level, box);
/* Ensure writes to the staging BO land before we map it below. */
iris_emit_pipe_control_flush(map->batch,
+ "transfer read: flush before mapping",
PIPE_CONTROL_RENDER_TARGET_FLUSH |
PIPE_CONTROL_CS_STALL);
}
if (ice->batches[i].contains_draw ||
ice->batches[i].cache.render->entries) {
iris_batch_maybe_flush(&ice->batches[i], 24);
- iris_flush_and_dirty_for_history(ice, &ice->batches[i], res);
+ iris_flush_and_dirty_for_history(ice, &ice->batches[i], res,
+ "cache history: transfer flush");
}
}
void
iris_flush_and_dirty_for_history(struct iris_context *ice,
struct iris_batch *batch,
- struct iris_resource *res)
+ struct iris_resource *res,
+ const char *reason)
{
if (res->base.target != PIPE_BUFFER)
return;
if (batch->name != IRIS_BATCH_COMPUTE)
flush |= PIPE_CONTROL_RENDER_TARGET_FLUSH;
- iris_emit_pipe_control_flush(batch, flush);
+ iris_emit_pipe_control_flush(batch, reason, flush);
}
bool