1000 Commits

Author SHA1 Message Date
Daniel Vetter
2c9e761845 tests/gem_largeobject: Prefault instead of pin
This doesn't test pin but pwriting to big objects ...

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72901
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-10 09:24:33 +01:00
Daniel Vetter
cb9e8376fa tests: fixup igt_simple_main fallout
Oops, I should look at compilier warnings a bit better.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-10 09:24:33 +01:00
Daniel Vetter
7775fca2df tests/gem_ctx_exec: fix ram requirement fumble
We need to half available ram, not double it ...

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72557
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-08 20:25:26 +01:00
Daniel Vetter
864d09ed4c tests/NAMING-CONVENTION: s/snooped/snoop/
Oops. We should be a bit more consistent with which verb form we're
picking. tile,tiled,tiling is even worse ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-08 20:25:26 +01:00
Paulo Zanoni
98c10d379b tests/kms_flip: free the test_output struct when counting modes
Looks like we have to do a lot of work just to count the number of
modes...

Caught by Valgrind.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2014-01-07 09:57:04 -02:00
Paulo Zanoni
69856b5e7b tests/kms_flip: don't leak the connector_config struct
... in case we can't find a compatible mode. We already have
config[0], we can't return without freeing it first.

Caught by Valgrind.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2014-01-07 09:57:04 -02:00
Paulo Zanoni
056500bdc5 tests/kms_flip: don't leak the CRTC
The kms_flip program calls kmstest_get_connector_config, which returns
a struct containing some allocated variables, including a pointer to
the CRTC. The problem is that we copy the values returned by this
structure to the test_output struct, but we ignore the CRTC pointer.
So free the CRTC pointer instead of leaking it.

Caught by Valgrind.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2014-01-07 09:57:04 -02:00
Paulo Zanoni
02ad7e04dd tests/kms_flip: don't leak the connector when setting DPMS
Caught by Valgrind.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2014-01-07 09:57:04 -02:00
Chris Wilson
164d9d26ac kmstest: Fix up lifetimes of cairo objects
cairo_t is the short lived drawing context, whereas cairo_surface_t is
the heavyweight object that persists and is also tied to underlying GEM
objects. So make the kmstest API reflect the different weights and fix
the lifetime and underlying object reference leaks.

Based on the fix by Paulo Zanoni.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-12-31 12:30:30 +00:00
Ben Widawsky
72fe2b6414 gem_exec_blit: gen8 updates for blit
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-24 13:12:31 -08:00
Paulo Zanoni
2a71bff317 tests/pm_pc8: check if we can't become DRM master
QA reported a failure that I believe happened because we couldn't
become DRM master, so add code that checks for this and prints a nice
error message.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-12-16 18:51:39 -02:00
Oscar Mateo
62e1cbc634 build: Create version and config information files in Android
Also, skip the compilation of pm_lpsp in Android (uses Cairo)

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-13 21:38:05 +01:00
Oscar Mateo
4eae05f03b tests/gem_close_race: Adapt the test for Full PPGTT
With Full PPGTT, each new fd creates a new context and thus a new
PPGTT, so we have to reduce the number of simultaneous fds or face
OOM problems. For every new PPGTT, its PDEs are stored in the GGTT
which imposes a limit of 1024 new contexts. We want to leave at
least 1/4 of the GGTT available for "important" stuff like scanout
buffers, so never open more than 768 fds.

v2: Unconditionally use the lower limit, as suggested by Daniel
Vetter

Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-13 17:49:13 +01:00
Daniel Vetter
16531069f6 tests: Document the Makefile variables a bit better
Also, this is a test for the patchwork hook.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-12 22:48:25 +01:00
Mika Kuoppala
a68937ca3b tests/gem_reset_stats: add reverse order in close-pending-fork
Use own copy of gem_quiescent_gpu() so that test still works
if it gets changed. Further improve the test by posting a batch
to rings in reverse order.

Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-12 11:59:47 +01:00
Daniel Vetter
826c4effe6 tests: Move gem_reset_stats to the right place
Binaries should only be added to the HANG target if they're completely
broken. If they just cause a recoverable gpu hang as part of the test
then they need to be somewhere else.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-12 09:28:17 +01:00
Paulo Zanoni
36f017dfd1 tests/kms_setmode: avoid 2 connectors on the same encoder
Don't try to set modes on two connectors that share the same encoder.
That will just fail.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68463
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-12-11 13:36:02 -02:00
Imre Deak
13ef9e8d54 kms_flip: consolidate run_test_on_{crtc,crtc_pair}
No functional change.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-10 15:46:00 +02:00
Imre Deak
1ac94b50af kms_flip: keep drm_fd open for the dpms restore exit handler
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69161

Signed-off-by: Imre Deak <imre.deak@intel.com>
2013-12-10 14:07:37 +02:00
Imre Deak
2c6c4cf2a1 kms_flip: fix seq_step for 2xcrtc subtests
This also raises the absolute wait-for-vblank sequence step from 5 to
10, just to make it consistent with the corresponding 1x subtests.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=69161
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-10 14:07:37 +02:00
Daniel Vetter
dda85fb108 tests: roll out igt_simple_init/igt_simple_main
Also use igt_skip a bit more to simplify some of the tests.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-10 10:18:32 +01:00
Daniel Vetter
ce1a9f918e tests: gem_close_race has subtests!
Oops.

v2: Found more.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-10 09:58:28 +01:00
Daniel Vetter
ef9745b7fa lib: igt_simple_main/init for subtest-less tests
Atm only used to print the version information.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-10 09:41:48 +01:00
Ben Widawsky
8c33e9ad11 intel-gpu-tools: Version information
Provide two arguments version, and verbose, which allow printing from an
arbitrary igt test. It will show system information (from build time,
not runtime), as well as the git SHA being used.

This will help reduce errors when people try to reproduce problems.

As an example if I want to verify someone is running the correct version
of a test, I could ask them to do:
bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --verbose
gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)
Time to exec x 1:		 35.000µs (ring=render)
Time to exec x 2:		 28.000µs (ring=render)
Time to exec x 4:		 20.000µs (ring=render)
Time to exec x 8:		 14.625µs (ring=render)
Time to exec x 16:		 11.188µs (ring=render)
Time to exec x 32:		 11.125µs (ring=render)
Time to exec x 64:		 10.328µs (ring=render)
Time to exec x 128:		 10.172µs (ring=render)
Time to exec x 256:		 10.234µs (ring=render)
Time to exec x 512:		 10.232µs (ring=render)
Time to exec x 1024:		 10.121µs (ring=render)
Time to exec x 2048:		 10.151µs (ring=render)
Time to exec x 4096:		 11.474µs (ring=render)
Time to exec x 8192:		  9.432µs (ring=render)
Time to exec x 16384:		  6.003µs (ring=render)
Time to exec x 32768:		  5.029µs (ring=render)
Time to exec x 65536:		  4.206µs (ring=render)
Time to exec x 131072:		  3.630µs (ring=render)
Subtest render: SUCCESS

--verbose is provided for completeness, but doesn't seem too useful at
the moement.

bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --version
gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)

I've put version.h in the root directory so that any subdir can access
it. I've added the tests usage since it's immediately useful, and done
easily via Daniels igt infrastructure work.

v2:
- Always print the version number.
- We want to print uname at runtime.
- Also prefix the i-g-t release version.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-10 09:23:40 +01:00
Tvrtko Ursulin
3c5423b9a7 tests/gem_media_fill: Remove unnecessary include
Causes trouble for Android builds.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-06 17:16:10 +01:00
Paulo Zanoni
ef0931724f tests: add pm_lpsp
QA has asked me "How can we make sure LPSP is working?". Now, instead
of writing big paragraphs, I can just answer "make sure pm_lpsp
works".

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2013-12-06 13:11:14 -02:00
Daniel Vetter
a4d3a6c013 lib: make igt_pipe_crc_start never fail
It's what callers expect - pipe_crc_new is the function where
we pass a potential failure back to callers.

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-06 14:51:14 +01:00
Daniel Vetter
c1b7e722da lib: add igt_pipe_crc_check
No need to duplicate this all over the place.

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-06 14:51:14 +01:00
Daniel Vetter
3e37eb3c6c tests: drm_open_any doesn't fail
Or more precisely: It already has an igt_require. So we cant ditch it
from tests.

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-06 14:51:14 +01:00
Damien Lespiau
5b3edb6152 gitignore: Ignore gem_media_fill
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-12-06 13:02:51 +00:00
Daniel Vetter
509850bf48 tests/gem_reset_stats: document the new subtest a bit better
I wanted to add this to Mika's original patch but forgot to git add.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-06 08:39:31 +01:00
Xiang, Haihao
641267dd73 tests: add gem_media_fill
It is to check whether media pipeline on render ring works. Codes
are copied and modified from the rendercopy case which uses 3D pipeline.
However media pipeline is simpler than 3D pipeline and there is few changes
between gen6,gen7 and gen8

Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2013-12-06 15:11:03 +08:00
Ben Widawsky
8ac7b93b21 gem_exec_faulting_reloc: Update gen8 BLT cmds
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-05 16:28:20 -08:00
Ben Widawsky
53b0c0431c gem_reloc_vs_gpu: Update for gen8 BLT cmds
NOTE: Some subtests are still failing, but I haven't found the bug yet.
At least this should help QA meanwhile.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-05 15:32:37 -08:00
Ben Widawsky
b23d73788a gem_persistent_relocs: Update for gen8 BLT cmds
NOTE: Some subtests are still failing, but I haven't found the bug yet.
At least this should help QA meanwhile.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-05 15:32:22 -08:00
Ben Widawsky
ba0d651a01 gem_write_read_ring_switch: Missed gen8 BLT updates
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-05 14:36:20 -08:00
Ben Widawsky
846a0f01b0 drm_vma_limiter_cached: Missed gen8 BLT updates
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-05 14:34:35 -08:00
Ben Widawsky
672911d714 gem_pipe_control_store_loop: BDW update
I've opted to not use the PIPE_CONTROL w/a for now. I am unclear if it
is actually required (the test does pass).

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
2013-12-05 14:30:14 -08:00
Daniel Vetter
40b586188c tests/gem_ctx_exec: Add eviction test
It didn't pan out at all since atm we don't evict context objects. But
maybe it's useful for when that happens.

v2: Actually test eviction. Took a while to figure that one out.

And indeed the testcase now fails because we don't evict the previous
context as we should.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-05 15:50:43 +01:00
Daniel Vetter
33ef528490 tests/core_get_client_auth: new subtests for always authenticated
This exercise the bug fixed in

commit 1020dc6990168a5081ffad620c440e220f05b460
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 29 08:55:57 2013 +0000

    drm: Do not drop root privileges for a fancier younger process

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-05 13:41:51 +01:00
Daniel Vetter
365f4812b1 tests: rename get_client_auth to have a core_ prefix
Also sort .gitignore.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-05 13:35:50 +01:00
Mika Kuoppala
6b18ef826f tests/gem_reset_stats: add close-pending-fork
This triggers use after free oops on request->batch_obj when
going through the rings and setting reset status on requests,
after a gpu hang.

v2: Streamlined the test and added comments (Daniel)

Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-04 16:45:28 +01:00
Tvrtko Ursulin
4f990f3ad2 build: Skip kms_fbc_crc on Android
We do not have GLib there so it does not build.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-03 17:48:03 +01:00
Tvrtko Ursulin
b92b397d5e build: Make sure asserts are enabled for tests
Tests depend on assertions being enabled since they can, and do,
contain actual test steps. They are also mandatory for ensuring
sane test case behaviour.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-03 17:08:03 +01:00
Daniel Vetter
aee0dcb1ec test/gem_concurrent_blt
Limit working set size also with available ram.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72255
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-03 16:32:52 +01:00
Damien Lespiau
e7ec90a01c gitignore: Ignore kms_fbc_crc
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-11-28 14:35:45 +00:00
Damien Lespiau
8d7f00146c kms_fbc_crc: Remove unused variable
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-11-28 14:34:51 +00:00
Ville Syrjälä
6c9fcc42bb kms_fbc_crc: Add a CRC based FBC test
kms_fbc_crc will perform various write operations to the scanout buffer
whilc FBC is enabled. CRC checks will be used to make sure the
modifcations to scanout buffer are detected.

The operations include:
 - page flip
 - GTT mmap
 - CPU mmap
 - blit
 - rendercopy
 - context switch + rendercopy
 - combination of a page flip and each operation listed above

v2: Use gem_sw_finish instead of drmModeDirtyFB after CPU access
v3: Drop pwrite tests, call gem_bo_busy() after rendering, drop
    set_domain() calls after mmap access, wait for 2 vblanks

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2013-11-27 16:21:28 +02:00
Ville Syrjälä
49f4860d5c lib: Add gem_bo_busy
Move gem_bo_busy() from gem_wait_render_timeout.c to lib.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2013-11-27 16:21:28 +02:00
Ville Syrjälä
725da6ee74 rendercopy: Pass context to rendercopy functions
rendercopy does the batch buffer flush internally, so if we want
to use it with multiple contexts, we need to pass the context
in from caller.

v2: Modify rendercopy_gen8 as well

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2013-11-27 16:21:28 +02:00