On Wednesday, September 6, 2017 5:12:10 AM PDT Chris Wilson wrote:
> Quoting Kenneth Graunke (2017-09-06 01:09:46)
> > @@ -156,11 +158,14 @@ intel_batchbuffer_reset(struct intel_batchbuffer
> > *batch,
> > batch->map = brw_bo_map(NULL, batch->bo, MAP_READ | MAP_WRITE);
> > batch->map_next
Quoting Chris Wilson (2017-09-06 10:45:57)
> Quoting Kenneth Graunke (2017-09-06 01:09:46)
> > However, this patch tries to retain the original flushing behavior - it
> > adds the amount of batch and state space together, as if they were still
> > co-existing in a single buffer. The hope is to
Quoting Kenneth Graunke (2017-09-06 01:09:46)
> @@ -156,11 +158,14 @@ intel_batchbuffer_reset(struct intel_batchbuffer *batch,
> batch->map = brw_bo_map(NULL, batch->bo, MAP_READ | MAP_WRITE);
> batch->map_next = batch->map;
>
> + batch->state_bo = brw_bo_alloc(bufmgr, "statebuffer",
Quoting Kenneth Graunke (2017-09-06 01:09:46)
> However, this patch tries to retain the original flushing behavior - it
> adds the amount of batch and state space together, as if they were still
> co-existing in a single buffer. The hope is to flush at the same time
> as before. This is
Previously, we emitted GPU commands and indirect state into the same
buffer, using a stack/heap like system where we filled in commands from
the start of the buffer, and state from the end of the buffer. We then
flushed before the two met in the middle.
Meeting in the middle is fatal, so you