11 Commits

Author SHA1 Message Date
Chris Wilson
0591af9c76 igt/gem_streaming_writes: Reorder setting EXEC_OBJECT_WRITE
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90944
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-07-28 20:12:03 +01:00
Chris Wilson
40ebf95163 igt/gem_streaming_writes: Bind into the GTT early
If we are using a streaming GGTT write into the source, we need to
trigger an early fault in order to obtain a mappable offset. This is
required when later we start reserving execbuf object top-down to try
and avoid mappable space!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-07-28 19:01:41 +01:00
Chris Wilson
a5a6d40ca8 igt/gem_streaming_writes: Reorder src/dst to avoid executing on snooped
During the streaming setup, we execute a dummy batch in order to bind
the objects into the GTT and query their offsets. For this, we should
not use a snooped buffer for the dummy batch, or else we may anger the
GPU. Given that we have a choice, use the other buffer for the dummy
batch.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-06-03 14:00:59 +01:00
Chris Wilson
9777300846 igt/gem_streaming_writes: Map the whole batch for CPU accesses
The llc cpu path only partially mapped the batch buffer so confused the
CS when attempting to execute an empty batch.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90809
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-06-02 11:26:18 +01:00
Chris Wilson
e93fbc2873 igt/gem_streaming_write: Add a variant to exercise CS
Another issue in streaming writes is into the batch buffer.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-20 14:57:16 +01:00
Chris Wilson
3d1f9a2236 igt/gem_streaming_writes: Remember to markup the write target!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-19 15:35:48 +01:00
Chris Wilson
65fec5e583 igt/gem_streaming_writes: Add more validation steps
Inalcude a pre-pass to check that the non-streaming, partial writes
work.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-19 15:35:48 +01:00
Chris Wilson
2ce298cf13 igt/gem_stream_writes: Use execbuf LUT to shave a few cycles off dispatch
Since our goal is to have concurrent read/writes of GPU buffers, we want
to spend as little time in between as possible.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-12 15:35:32 +01:00
Chris Wilson
f5dd258cc7 igt/gem_streaming_writes: Build in a self-test
Use the first pass to write all values prior to the initial execbuf to
verify that the copy itself is true. Subsequent passes then focus on
verifying that writing values whilst the GPU is reading from
neighbouring values is then correct.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-12 10:04:46 +01:00
Chris Wilson
357073c257 igt/gem_streaming_writes: Trim number of batch buffers allocated
Reduce memory usage for batches by a factor of 64 - which we immediately
spend some of in increasing the stress.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-11 21:21:36 +01:00
Chris Wilson
672238dbf7 igt: Add gem_streaming_writes
This tries to replicate the missing barrier observed when using
asynchronous mmap(wc) on byt.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-05-11 16:19:12 +01:00