138 Commits

Author SHA1 Message Date
Daniel Vetter
f361664df0 tests: add test to read all debugfs files
Catches a bunch of forcewake warnings on snb+

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-10-30 20:54:18 +01:00
Daniel Vetter
5ef806bb5d tests: add gem_unref_active_buffers
The crucial trick to reproduce the bug is that we need to have
a decent pile of active bos to retire. Because we unref the bo
after having it moved off the active list, our recursion depth
in fdo bug #42180 is limited by the number of active objects that
can retire at the same time.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42180
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-10-28 17:40:23 +02:00
Daniel Vetter
1c6511f7fb tests: add gem_hangcheck_forcewake
Provokes the forcewake warning when the hangcheck runs and no
one waits for the gpu (and hence holds the dev->struct_mutex).

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-10-16 21:14:03 +02:00
Daniel Vetter
ba2255a7e4 tests: build all tests by default
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-09-14 14:59:23 +02:00
Daniel Vetter
2c380c2eac tests: disable gem_bad_blit
Hangs gen3 and simply writes garbage into the unmappable part of
gtt on gen4+, which might cause issues later on.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-09-14 11:06:03 +02:00
Daniel Vetter
b8245e18fe tests: add basic test for missed irqs
Didn't catch any known bug, but can't hurt.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-09-12 20:45:49 +02:00
Daniel Vetter
fbf8950f6e tests: check pipe_control coherency
v2: proper support for gen6+

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-09-12 20:40:10 +02:00
Daniel Vetter
61b9806f4e tests: basic ring<->cpu and ring<->ring tests
Using a dummy reloc that doesn't matter to trick the kernel into
synchroizing the rings.

v2: properly apply MI_NOOP workaround to MI_FLUSH_DW and
switch to MI_COND_BATCH_BUFFER_END as a dummy command on the
render ring to avoid PIPE_CONTROL errata.

v3: somebody clever decided that in C, you cound from 1,
i.e. I915_EXEC_RENDER == 1. It works now ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-09-12 09:39:16 +02:00
Daniel Vetter
32f49c7c0d tests: split up gem_storedw_loop into ring specific variations
Also start to shortly explain testcases with an easily-greppable
header like this:

/*
 * Testcase:
 *
 * [Possible further explanation.]
 *
 */

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-09-09 22:57:16 +02:00
Jesse Barnes
922214f986 tests: add store dword tests
Add a couple of simple store dword tests to test memory coherence.

gem_storedw_loop simply executes a batch that continually stores an
incremented value to a target buffer object, checking the results after
each batch completes.

gem_storedw_batches_loop does the same thing, but creates a new command
batch buffer for each iteration, which can exercise the buffer creation
code.  This test is based on one from Andrzej Kacprowski from Intel.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2011-08-12 12:51:34 -07:00
Chris Wilson
a0a0b6ab34 Add a test case for coherency of vmaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-08 14:54:32 +01:00
Chris Wilson
8908055da6 tests: Add an exercise for zero-length buffers
Triggers an OOPS with dmar enabled currently.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-23 14:06:45 +01:00
Chris Wilson
9de433a471 tests: Add a simple exercise of GTT mmaps
Test copying between 2 mappings and reading/writing from and to.

References: https://bugs.freedesktop.org/show_bug.cgi?id=38115
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-20 13:55:36 +01:00
Chris Wilson
f5e63b12a5 test: Add more gen3 render blitters
... 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>
2011-06-05 18:12:47 +01:00
Chris Wilson
20b69039e8 test: Exercise gen3 render copies
gem_stress is unhappy with tiled render copies on gen3. This is a simple
little test to ensure that a set of pure copies with a working set
larger than the aperture are handled correctly.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 12:10:11 +01:00
Chris Wilson
3ca054c225 tests: Add a fenced execbuffer thrash test
Exercise a nasty corner-case in the reservation logic for the fence
accounting.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-04 23:17:25 +01:00
Chris Wilson
719ffef7c3 gem_stress: Add render copyfunc for SandyBridge
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-05-24 22:08:48 +01:00
Daniel Vetter
afa940c398 Disable gem tests when libdrm is not available
Quickly checked on ppc by Cyril Brulebois.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-04-09 20:15:10 +02:00
Daniel Vetter
4fcfc9f102 gem_stress: gen2 render copy
Sometimes acts up like gen3 on my i855gm. Sometimes works flawless.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-04-04 22:03:44 +02:00
Daniel Vetter
a6751bac8d gem_stress: split out gen3 render copy
Header conflicts with other headers for different generations.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-04-01 13:07:43 +02:00
Daniel Vetter
08cf53703e Add gem stress test
Not where I want it to be, yet. And not as good as I've hoped in detecting
broken kernels.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-03-20 21:12:32 +01:00
Chris Wilson
84c32bd85c test: Mark gem_bad_batch as a known hang
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-03-05 09:01:46 +00:00
Chris Wilson
d4127e0e68 tests: Move potential machine killers away from distcheck
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-09 10:24:39 +00:00
Chris Wilson
9fd7e35c39 Simple test to ensure that working sets larger than memory, just work.
Based on gem_tiled_blit, but without the complication of the tiling.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-01 19:24:41 +00:00
Chris Wilson
371f87f2d8 Exercise the whole aperture with tiled blits
After full-gtt, gem_tiled_blits doesn't allocate enough to force
eviction. So query the total aperture and accommodate.

Also introduce a similar test that utilizes fences rather than
use the BLT to perform the tiling and detiling.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-02-01 10:56:46 +00:00
Chris Wilson
5fc09c82d4 Time blt vs pwrite
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-29 16:13:38 +00:00
Chris Wilson
07d59b308d Add a simple test to execute n nop batches
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-29 16:13:38 +00:00
Chris Wilson
f19a1942c2 Add a GTT timing test
Using for diagnosing some mysterious slowdowns. Should include a variant
for basic benchmarking...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2010-12-23 12:47:17 +00:00
Jesse Barnes
5406c633a0 tests: add display testing program
Just a simple program to light up all detected outputs at their native
mode and respond to hotplug events.
2010-12-21 09:39:07 -08:00
Chris Wilson
8f3f862b96 Add gem_fence_thrash test
This is a test case that overcommits fence registers between threads, which
are copying from one fenced bo to another. In earlier versions of the driver
this would cause excessive spinning as the first inactive (i.e. not in use
by the GPU) would be used to service the next page. After all the fence
registers had been allocated, in effect only the very first fence would then
be used for all subsequent faults.
2009-09-01 11:53:47 +01:00
Jesse Barnes
bbafc3d0bf Four new tests for error handling
Add four new tests for error the error handling cases:
  - gem_bad_address - store to a bad address, should generate a protection or
    page table error
  - gem_bad_batch - try to execute a bad batch, should generate a protection,
    invalid instruction or page table error
  - gem_bad_blit - blit to an invalid location, should generated a protection
    or page table error
  - gem_hang - hang the GPU on an event that will never happen, test hang
    detection & recovery code
2009-06-18 18:10:23 -07:00
Jesse Barnes
433e1c85a0 tests: add large object test
The large object test simply tries to allocate a 128M object, pin it, then
pwrite the whole thing.  This should make obvious any leaks on close or
page pointer allocation failures.
2009-05-14 14:39:48 -07:00
Eric Anholt
302d15f2e7 Add a test to try to fill the ring.
Did this while trying to debug the Ubuntu DRI1+compiz issue.  Didn't succeed
in filling the ring.
2009-04-27 09:35:40 -07:00
Eric Anholt
548a6a7fa2 Add a test for reading tiled objects with pread. 2009-04-07 19:06:36 -07:00
Eric Anholt
cd9ba0a3b6 Add a test for pread after blitting to an object.
This caught a bug with get_user_pages usage in the kernel, which would
result in zeroes being read out of the object when faulting in a new page.
2009-04-07 19:06:33 -07:00
Eric Anholt
3b301df9ec Add a regression test for tiled object blitting. 2009-04-03 14:23:06 -07:00
Eric Anholt
895a415909 Add the tests we want from libdrm. 2009-03-26 18:47:42 -07:00
Eric Anholt
8c64183a46 Initial import of intel-graphics-tools with some microbenchmarks. 2009-03-26 17:15:11 -07:00