1609 Commits

Author SHA1 Message Date
Damien Lespiau
161e610765 tests: Add some tiled tests to the runs on simulation
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 16:16:19 +01:00
Damien Lespiau
00ab9a1313 tests: Instrument gem_seqno_wrap to run in simulation
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:56:59 +01:00
Damien Lespiau
204df66798 tests: Instrument gem_lut_handle for simulation
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:56:53 +01:00
Damien Lespiau
d1e862324b tests: Instrument tests run in simulation to run quickly
We tweak the tests marked as runnable in simulation to run more quickly,
more often then not at the expense of stress testing (which is of an
arguable interest for the initial bring up in simulation). Hopefully the
values chosen still test something, which is not always straightforward.

It does run quickly, the number on an IVB machines are:

$ time sudo IGT_SIMULATION=0 ./piglit-run.py tests/igt.tests foo
[...]
real	2m0.141s
user	0m16.365s
sys	1m33.382s

Vs.

$ time sudo IGT_SIMULATION=1 ./piglit-run.py tests/igt.tests foo
[...]
real	0m0.448s
user	0m0.226s
sys	0m0.183s

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:56:35 +01:00
Damien Lespiau
5fa15f79d0 tests: Black list tests we don't want to run on simulation
Let's start by a small set of tests, to eventually consider running
more.

The current list should then be:

gem_mmap
gem_pread_after_blit
gem_ring_sync_loop
gem_ctx_basic
gem_pipe_control_store_loop
gem_storedw_loop_render
gem_storedw_loop_blt
gem_storedw_loop_bsd
gem_render_linear_blits
gem_tiled_blits
gem_cpu_reloc

gem_exec_nop
gem_mmap_gtt

v2 add (Daniel Vetter)
gem_exec_bad_domains
gem_exec_faulting_reloc
gem_flink
gem_reg_read
gem_reloc_overflow
gem_tiling_max_stride
prime_*

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:49:02 +01:00
Damien Lespiau
cf4efd1597 lib: Remove old dead code intel_batchbuffer_emit_mi_flush()
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:48:55 +01:00
Damien Lespiau
4b34765594 lib: Introduce drmtest_skip_on_simulation()
This will allow us to explicitely blacklist tests we don't want to run
on simulation.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:48:46 +01:00
Damien Lespiau
c25e892ec3 lib: Rename IGT_QUICK to INTEL_SIMULATION
It's more accurate this way as the quick mode is really useful for in
the simulation environment.

v2: Use the INTEL_ prefix to have a chance to share the same environment
    variable as piglit OpenGL tests

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-07-18 15:48:42 +01:00
Damien Lespiau
0193b69e14 build: Depend on cairo 1.12.0 for CAIRO_FORMAT_RGB30
We've somewhat recently added RGB30 support to testdisplay, but we need
cairo 1.12.0 for that. Barf early.

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-17 17:58:44 +02:00
Mika Kuoppala
edee952e6a tools/inter_error_decode: decode for ctl and acthd
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-16 15:18:56 +02:00
Daniel Vetter
05cc515f3a tests/prime_nv_api: check multiple foreign imports with flink
We want prime to only ever create one native gem object for each
dma-buf it sees. This can e.g. happen if multiple processes import the
same foreign dma-buf, e.g. the application imports a yuv frame from
v4l to encode it into a video stream and the compositor imports it
into his fd again to display it with an overlay.

Hence add a bunch of tests which check all the various orders in which
this could happen. Currently they all fail.

Checking flink names is the easiest (and afaik only) way to check
whether we're indeed dealing with the same object.

This checks both ways, i.e. exporting from i915 and from nouveau, each
with two variants of the test: One reuses the prime fd, the other
closes it and creates a new one.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-16 13:36:38 +02:00
Daniel Vetter
d64a9458b2 test/prime_nv_test: use gem drmtest functions for pread/pwrite
Different argument order, otherwise the same.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-15 11:12:31 +02:00
Daniel Vetter
bc1a85e813 test/prime_nv_test: nicer test names
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-15 11:09:57 +02:00
Daniel Vetter
4a9d50db1b test/prime_nv_api: more descriptive subtest names
Preprocessor magic ftw!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-15 11:04:20 +02:00
Daniel Vetter
1a3c7e3493 tests/prime_nv_api: Drop bogus check from import-twice
It's purely accidental that importing that same bo to different
drm nouveau fds yields the same handle.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-15 10:59:55 +02:00
Daniel Vetter
c28b898cd4 tests/prime_nv_api: convert to subtest infrastructure
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-15 10:51:10 +02:00
Chris Wilson
b37d89318d tests/gem_write_ring_switch: Skip on pre-SNB
The test requires MI commands only introduced with SNB, and so causes
GPU death on gm45 and ilk.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66838
2013-07-12 10:07:04 +01:00
Chris Wilson
7dbc43f27a tests/gem_write_read_ring_switch: Repeat under rude interrupter
Another waiter that will then be subject to being interrupted, so retest
the ring switches with the rude interrupter.
2013-07-12 10:00:42 +01:00
Daniel Vetter
9ee41661de tools/quickdump: gitignore generated files
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-10 15:35:13 +02:00
Daniel Vetter
727440c48a tests: actually add gem_write_read_ring_switch
Duh ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-10 15:34:56 +02:00
Daniel Vetter
21c0ab30a1 test: add gem_write_read_ring_switch
This is meant to exercise the bug fixed in

https://patchwork.kernel.org/patch/2825192/

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-10 10:35:10 +02:00
Daniel Vetter
037847a102 tools/intel_reg_dumper: fix up END register
I'm full of fail ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-09 23:04:20 +02:00
Daniel Vetter
d3221334d2 tools/intel_reg_dumper: add gen6+ fences
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-09 10:46:09 +02:00
Chris Wilson
79b3029fe8 gem_(tiled|linear)_blits: s/interrutible/interruptible/
Spelling fix in "interruptible" subtest name.
2013-07-04 01:12:00 +01:00
Daniel Vetter
db94faede5 tests/kms_flip: don't run blocking relateve vblank waits with interrupts
They simply take forever with the current kernel implementation. And
since everyone switched over to the event based interface I don't see
much incentive to try to fix that.

So just disable them.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-04 01:52:04 +02:00
Paulo Zanoni
a7e7d08513 intel_reg_dumper: enable the power well
The intel_reg_dumper tool reads a lot of display registers. If we
don't turn on the power well, dmesg will get flooded with tons of
messages about unclaimed registers. So here we enable the "Debug"
power well register and then restore its state later. It's impossible
to guarantee that other things won't mess with the debug register
between our put and get calls, but at least we're trying our best to
keep things working fine, and it's the debug register anyway.

As far as I know, nothing else uses the Debug register for anything,
so we should be safe for now.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-07-03 14:49:09 -03:00
Paulo Zanoni
a1ca6f9ca5 lib: fix WM_DBG register address
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-07-03 14:49:09 -03:00
Paulo Zanoni
c013bb02e6 intel_reg_dumper: add hsw_debug_lp_wm
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-07-03 14:49:09 -03:00
Chris Wilson
c6cec844f9 Make the failure message for drm_open_any() more specific
Do not suggest retrying as root if we already are.
2013-07-03 10:01:15 +01:00
Chris Wilson
9eb7d8950c Avoid corrupting the exitcode with a failure to open a quiescent fd
In the atexit handler, we attempt to quiesce the GPU. This involves
opening a fd - which will fail if the test is not being run as root and
will obliterate the test status and pollute the output.
2013-07-03 10:01:15 +01:00
Daniel Vetter
9360df4ab3 tests/gem_linear|tiled_blits: convert to subtests
Finer granularity for nightly runs and regression reporting is always
nice.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-03 08:47:34 +02:00
Chris Wilson
bc388b54d4 drm_lib.sh: Be more precise in detecting the i915 /sys path
We need to be careful in case other devices grow an error file in the
future. The first step here is just to check the minor that corresponds
with the debugfs path found for the device
2013-07-03 08:17:18 +01:00
Chris Wilson
e50ae9596c tests/hangman: Be lenient towards a non-existent sysfs error state
As /sys/class/drm/cardX/error is a new interface for 3.11, we need to be
quiet when it does not exist or else we upset the automated tests.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66533
2013-07-03 08:17:18 +01:00
Chris Wilson
ae452e327a tests/gem_(linear|tiled)_blits: Repeat whilst being interrupted
Since these two tests exercise a working set larger than aperture, they
require stalls which are prone to being interrupted - so interrupt them
and check that everything still works.
2013-07-02 11:29:26 +01:00
Daniel Vetter
faf2a0223c tests/drm_lib.sh: Don't die if the sysfs path can't be found
That just means that the sysfs error file isn't there.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-02 09:13:57 +02:00
Daniel Vetter
3f93e1bc74 test/drm_lib.sh: Updated sysfs error filename
I've forgotten to bikeshed that part ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-02 09:09:56 +02:00
Mika Kuoppala
857b464b34 tests/ZZ_hangman: Test both error_state interfaces
Test both debugfs and sysfs error_state interfaces.

v2: sysfs error_state not mandatory

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
[danvet: Update sysfs file name.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-01 18:55:35 +02:00
Mika Kuoppala
6fd652ac1d tests: add i915_sfs_path
To access 'error_state' through sysfs.

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-01 18:54:53 +02:00
Mika Kuoppala
3743a0b994 tests: rename debugfs base path to be more specific
In preparation to have sysfs entries used in scripts
rename to more specific name.

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-01 18:54:40 +02:00
Chris Wilson
4541cbeba4 tests/kms_flip: Repeat all of the tests whilst being rudely interrupted
Once upon a time, our modesetting code used to fail if it was
interrupted. So lets make sure that never happens whilst flipping.
2013-07-01 12:52:43 +01:00
Ville Syrjälä
b84b9e230c quick_dump: Add VLV DPIO registers
Add the names of all VLV DPIO registers.

v2: Use the third element to signal DPIO registers, and split
    the code changes to a separate patch

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-06-30 22:06:40 -07:00
Ville Syrjälä
e87c2536f6 quick_dump: Document the register definition format
Add a small comment about what the elements in the register
tuple mean.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-06-30 22:06:38 -07:00
Ville Syrjälä
de92969a40 quick_dump: Add automagic DPIO register support
Repurpose the (currently unused) third element in the register
definition tuple to indicate the type of the register. 'DPIO'
is the only special register type for now.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-06-30 22:06:35 -07:00
Daniel Vetter
26af13f84f lib/drmtest: set default sighandler for QUIT in the signal process
Otherwise the thing doesn't reliably die when run from the piglit
framework somehow.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-29 18:31:45 +02:00
Daniel Vetter
64ff612b81 tests/gem_cpu_concurrent_blit: stop signal helper again
Not doing so totally upsets the piglit igt runner since we leave
a bunch of zombies behind.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-29 17:50:49 +02:00
Chris Wilson
13932d67de tests/gem_cpu_concurrent_blit: Restore lost intel_copy_bo()
Accidentally replaced the intel_copy_bo() with the set_bo() in the
"overwrite-source" in 4fd34977aff60f58cd955eb9c2d568d5fb824611 when
clearly I wanted to simply add the calls to set_bo() first.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-29 17:19:35 +01:00
Chris Wilson
b1f23fe1d4 tests/gem_cpu_concurrent_blit: Undo debugging hack
Accidentally left in the hack to run the
"overwrite-source-interruptible" for only one loop, used whilst testing.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-29 17:10:19 +01:00
Chris Wilson
4fd34977af test/gem_(cpu|gtt)_concurrent_blit: Move the set_bo() from create to the test
Hiding the initial set_bo() required for the "overwrite-source" tests
lead to a nice bit of hilarity as I missed repeating the initialisation
for the multiple loops of the interruptible version of
"overwrite-source".

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-29 17:07:51 +01:00
Chris Wilson
4c6f2d4e0c tests/gem_(cpu|gtt)_concurrent_blit: Restore the old tests and add the new interruptible as new tests
Daniel preferred to keep the old tests intact lest we accidentally break
them, and to add the new interruptible tests as new subtests.

In the process also make sure the GPU is idle before starting each loop.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-29 16:49:05 +01:00
Chris Wilson
95426dc206 tests/gem_(cpu|gtt)_concurrent_blit: Enable signals
In order to exercise the bug behind:

commit 22fd5ca947b58901927d100d2b1aa0f1672b3435
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Jun 28 16:54:08 2013 +0100

    drm/i915: Only clear write-domains after a successful wait-seqno

we need to check for concurrent access with the potential to be
interrupted by a signal. The framework for doing so is already in place,
so just enable it and repeat the tests for longer to give better chance
of being interrupted at just the wrong moment.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-06-29 16:37:20 +01:00