Exclude the symbolic "default" engine from the interengine sync testing,
and move it onto the standalone testing.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Certain kernels/gen like to move execbuf around for relocations,
disrupting our prewritten batches. Be more careful and try and keep the
relocation/execobjects accurate.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Not as stressful as testing inter-ring synchronisation, but it does
allow inspecting the simpler testcases if need be.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
The goal is to test interengine synchronisation so remove any likelihood
that we introduce synchronisation for performing relocations.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We don't preserve the execobj.offset nor set the right values into the
batches between iterations.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
A more complicated store variant to stress inter-engine dependencies
(i.e. semaphores and sync). We write a control value from one batch into
the next and then execute it. This is repeated a few times with each
execution happening on a different engine (so the kernel has to
serialise operations between engines) until we finally write the value
out into our scratch buffer where we can check the result, just like a
Chinese whisper.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>