As signals cause the syscalls to be interrupted, we often need to clean
up partial state before returning to userspace. Often a source of
unamusing bugs, so encourage gem_stress to provoke them.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
gem_stress -p1 is much more evil than gem_stress -c1, it also manages
to tear appart untiled workloads!
Now duct-taping over it still works (--apply-duct-tape) ... hm.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Remember the 3D pipeline is much more restricted than the BLT engine,
and we were feeding it buffers much larger than either the
render engine or the sampler could manager.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
... and we have a winner: gen3_mixed_blits reproduces the issue Daniel
Vetter originally found. It seems clear that we have some incoherence
between the RENDER and BLT units on gen3 that no amount of MI_FLUSH can
hide. Hmmm....
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This things just won't die (libva!!!), so add an option to test them.
_Not_ meant to test snoopable mappings.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This seems to be another trick to massively improve correctness
of the render blit. At least on my i945.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Of all the things I've tried, this seems to be the only thing
to fix tile corruptions reliably on gen2&gen3 (safe for outright
disabling the render copy).
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
That little snippet creapt in and magically made render copy work -
by essentially disabling it.
Restore order, everything incoherent again.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
It seems to be randomly broken, every boot in a slightly different
way on my i945gme. Works quite well on my Q35. So add an option to
disable it till this is resolved.
Well, more testing seems to suggest that I've been hunting ghosts.
Or maybe not and it works now simply because it's a different day.
Anyway, leave this in for future testing.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
gem_stress maps all buffers, so more only results in trashing (which
should be handled with an option).
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
ddx and mesa assume that this is issued after every blit command.
Breaking that invariant results in a dying gpu.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
The busy bo has a fixed size (1024x256, 32bpp) whereas the scratch bo
may need to vary their size to exercise different features of fence
allocation.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
And a few other things:
- inline checking when copying tiles with the cpu, fails _much_ faster.
- bo size seems to have a tremendous effect, put on the TODO.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>