1584 Commits

Author SHA1 Message Date
Chris Wilson
470071d4ab igt/drm_read: Require that pipe 0 is active
As we require a pipe enabled to generate vblanks, the first step is to
then to check that pipe 0 is active or else skip the test.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-08 07:58:13 +00:00
Chris Wilson
819e68f2ed igt/drm_read: Abuse read(drm)
Check that the more obvious userspace error conditions are handled by
the kernel, ideally without loss of data. These include nonblocking
waits, passing invalid buffers and passing buffers of the incorrect
length.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-05 14:34:33 +00:00
Damien Lespiau
88ff1cec3a gem_bad_reloc: Don't flip-flop between SKIP and PASS
Here is a cheap way for this test to give consistent results. This
doesn't change the usefulness of this test, hopefully.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85270
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-12-04 16:48:06 +00:00
Thomas Wood
b3cce757b5 tests: add gem_gpgpu_fill to .gitignore
gem_gpgpu_fill was added in commit 4ec8479 (tests: Add gem_gpgpu_fill),
but wasn't added to .gitignore.

Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
8d82e5b5ef lib: remove igt_edid.h
This has been replaced by igt_kms_get_base_edid().

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
304c874b58 tests: use base edid
Use the base edid for testing, which includes several different display
modes.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
43da3e706b tests/kms_force_connector: split into subtests
v2: fix the initial mode count

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
b2ac2642a9 tests: add more test descriptions
Add more test descriptions based on exiting comments.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Zhenyu Wang
4ec8479c53 tests: Add gem_gpgpu_fill
This is simply a copy of gem_media_fill but using new
GPGPU fill operation.

v2: Use general fill func pointer.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2014-12-04 10:17:24 +08:00
Zhenyu Wang
106f0bf965 lib: rename igt_media_fillfunc_t typedef to igt_fillfunc_t
This makes fill function more general to prepare for other
fill method using GPGPU pipeline.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2014-12-04 10:17:12 +08:00
Tim Gore
4e5c16c17e tests/drv_hangman: remove check for other drm clients
This test will not run on Android as the coreu service
remains running even after the android system is stopped.
Coreu is a client of drm and when the test finds this it
fails an assert.
Coreu is started by the init process and there is no
tidy, non invasive way to stop it (init just restarts it).
Coreu isn't doing anything and would not be expected to
interfere with this test. In addition, all the other
igt tests just rely on the user/test script to ensure
that there are no other drm clients, so this test can
do the same. On Android we must rely on coreu being
dormant when this test runs.

Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-12-01 18:09:35 +01:00
Tim Gore
77b52f1881 tests/Android.mk: Add kms_pwrite_crc to cairo test list
kms_pwrite_crc was recently added and requires cairo, so
add this to the list of tests to exclude if cairo is not
avaiable

Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-01 13:53:00 +00:00
Ville Syrjälä
e06a7448d8 tests/kms_flip: Fix assert about vblank wait duration
If we wait for one vblank, we may end up returning almost immediately,
so trying to assert anything but >0 about the minimum duration is
bogus.

Instead wait for two vblanks and then we can assert that we should have
be blocked for at least one frame. And move the upper bound to a little
over two frames to match.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79050
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-01 13:18:15 +02:00
Tim Gore
ddf0f09776 tests/gem_ring_sync_copy: reduce memory usage
gem_ring_sync_copy uses a lot of memory and gets OOM killed on smaller
systems (eg android devices).  Most of the allocation is for "busy work"
to keep the render rings busy and for this we can just re-use the same
few buffers over and over. This enables the test to be run on low end
devices.

Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-11-28 16:02:04 +00:00
Thomas Wood
3bebf3dd01 tests: use subtests in gem_tiled_swapping
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-25 14:03:40 +00:00
Daniel Vetter
57259d714d lib/igt_debugfs: Don't setup crc in _new
The problem is that this causes writes to registers, and if the pipe
is off they might go nowhere (e.g. when runtime pm is enabled).
Furthermore we can only really check once the modeset setup is done,
but again most tests set up the CRC structure before calling
igt_commit and friends. We could add crc restore support to the
kernel's rpm code, but that will end up being rather invasive and
fragile hard-to-test code.

Now originally this was needed back when CRC support wasn't available
everywhere. But that's fixed now.

So given all this just drop that sanity check and make sure that we
only touch the debugfs file (and so the hw state) when we know the
pipe is running in the desired configuration.

A complementary kernel patch will try to catch offenders by returning
-EIO if the pipe is off.

v2: Forgot to git add one hunk.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86092
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-24 16:29:27 +01:00
Daniel Vetter
d8078911f6 tests/kms_render: gen2/3 can't do 10bpc
So skip those.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86236
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-18 15:17:43 +01:00
Daniel Vetter
08f0e1c625 tests/prime_self_import: Track leaked objects accurately
drm_open_any keeps a buffer handle around for the cleanup sync work,
so we can only grab the buffer count after the latst drm_open_any
call. Otherwise we'll detect a fake leak.

This broke in

commit 2f2c491cf3167befe7c79e4b17afb4f6284dfc84
Author: Mika Kuoppala <mika.kuoppala@intel.com>
Date:   Fri Mar 28 10:52:46 2014 +0200

    lib/drmtest: don't dup quiescent fd

since that additional open drm fd keeps a gem object for the default
context around. Hence why this also only blows up on gen6+ - earlier
platforms don't have hw context support.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79821
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-18 13:55:29 +01:00
Daniel Vetter
16f99ee419 lib/os: Push simulation test down into intel_require_memory
This has the upside that we'll never forget to add it to thrashing
tests. But we'll also never miss to move it when adding basic
functionality tests to existing binaries. Chris already started this
refining work in e.g.

commit d77eda6614a1955717f224be023dedf74eb7735d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Nov 14 07:45:40 2014 +0000

    igt/gem_linear_blits: Require that we do the full test

by moving igt_skip_on_simulation into subtests.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-17 15:12:52 +01:00
Daniel Vetter
a535cdedfb lib/os: Pust igt_require into memory check function
More in line with the usual igt pattern and simplifies the code -
every called just wrapped it in igt_require.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-17 14:43:33 +01:00
Chris Wilson
f674a1f61f igt/gem_tiled_blits: Require that we do the full test
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-14 09:17:01 +00:00
Chris Wilson
d77eda6614 igt/gem_linear_blits: Require that we do the full test
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-14 09:17:01 +00:00
Imre Deak
b35b1505f7 tests/pm_rpm: add gem-evict-pwrite subtest
This triggers a device suspended WARN in the kernel in
gen6_ggtt_insert_entries() while calling the GEM pwrite ioctl.

The sequence is suggested by Daniel.

Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-14 00:18:30 +02:00
Ville Syrjälä
f12ed83058 tests/kms_pwrite_crc: Add pwrite vs display coherency test
Add a test to verify that pwriting to a future scanout buffer works
correctly. The specific problem occurs when the buffer is already
UC/WT before the pwrite, not the current scanout buffer, and not
currently in the CPU write domain. With the buggy kernel no clflush
will be performed after the pwrite, and hence we end up with cache
dirt on the display.

The problem only affects LLC platforms (non-LLC would clflush anyway
after pwrite), but we can let the test run on all platforms.

v2: Fix typos in commit message and add to .gitignore

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-11-13 18:40:18 +02:00
Thomas Wood
f6aa80ca18 tests/kms_flip: add a timeout for the nonblocking-read test
kms_flip/nonblocking-read will block indefinitely if it fails, so
introduce a timeout to indicate test failure.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85718
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-13 14:27:57 +00:00
Daniel Vetter
6ee3337b28 tests/gem_exec_parse: Go OCD about C-style comments
Cc: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-12 13:43:04 +01:00
Brad Volkin
bf31ed80e0 tests/gem_madvise: set execbuf.batch_len before doing an execbuf
The command parser's batch_len optimization causes the parser to
reject this batch as not having an MI_BATCH_BUFFER_END because
the length was not set correctly.

Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-12 13:43:04 +01:00
Brad Volkin
c1fdc2f0e9 tests/gem_exec_parse: fix batch_len setting for cmd-crossing-page
The size of the batch buffer passed to the kernel is significantly
larger than the size of the batch buffer passed to the function. A
proposed optimization as part of the batch copy kernel series is to
use batch_len for the copy and parse operations, which leads to a
false "batch without MI_BATCH_BUFFER_END" failure for this test.

To fix this, modify the test to set batch_start_offset and batch_len
such that they define the range of actual commands in the batch,
including a few of the surrounding nops for alignment purposes.

v2: update batch_start_offset as well

Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-12 13:43:04 +01:00
Thomas Wood
10aacc7334 tests: ensure the script based tests are included in the distribution
TESTS_scripts was accidentally removed from EXTRA_DIST in commit 685e577
(Move library selftests to lib/tests).

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-12 10:39:41 +00:00
Mika Kuoppala
50d539efeb tests/gem_reset_stats: add defer-hangcheck test
to see if one can fool hangcheck by keeping non hanging
ring busy

v2: break from loop instead of return (Daniel Vetter)

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-11-11 17:38:46 +02:00
Thomas Wood
c049c39f35 tests: use igt_debugfs where possible
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-06 13:25:03 +00:00
Thomas Wood
4f689d52e7 tests/drm_lib.sh: add a "--help-description" option
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-06 13:24:30 +00:00
Thomas Wood
895204fc62 testdisplay: add a test description
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-06 13:24:30 +00:00
Thomas Wood
3d0dca47c6 docs: add some test descriptions
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-06 13:24:29 +00:00
Thomas Wood
ce0d34d73d testdiplay: add a "--help" option
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-06 11:41:34 +00:00
Thomas Wood
db425d69f6 testdisplay: ensure invalid long option exit status is non-zero
The optopt variable is not set if an invalid long option is used, so
check the current option character instead.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-06 11:41:34 +00:00
Brad Volkin
e34240d4c1 tests/drv_hangman: skip a few asserts when using the cmd parser
This test has a few checks that batch buffer addresses in the error
state match the expected  address for the userspace supplied batch.
But the batch buffer copy piece of the command  parser means that
the logged addresses are actually _supposed_ to be different. So
skip just those checks.

Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-11-05 13:35:29 +01:00
Chris Wilson
a973aabed0 tests: Remove spurious binaries from gem_tiled_wb commit
commit c45216b26d223ffd7f68c5794870214445a64b5c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Nov 4 07:30:57 2014 +0000

    igt/gem_tiled_wb: Exercise CPU mmaps with swizzling

brought along a few interlopers.
2014-11-04 16:34:40 +00:00
Daniel Vetter
83757d7b39 tests/prime_nv_test: Skip cpu mmap testcase
It's not implemented yet, so no point in running the test really.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68638
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-04 17:25:33 +01:00
Chris Wilson
fbc6730238 igt/gem_tiled_wb: Remove extraneous mmap(wc) requirement
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-04 12:13:37 +00:00
Chris Wilson
c45216b26d igt/gem_tiled_wb: Exercise CPU mmaps with swizzling
This exercises the the extended get_tiling ioctl in order to determine
proper swizzling for direct access to objects through WB.
Userspace cannot handle bit17 swizzling through wc mmaps (because bit17
requires swizzling based on the actual physical address of the page -
which is unknown to userspace) and so we need an extended get_tiling
ioctl to report the actual as well as the logical swizzling on an
object.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-04 12:09:26 +00:00
Chris Wilson
6fff1f8787 ioctl_wrappers: Pass in offset to CPU mmaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-04 12:08:50 +00:00
Chris Wilson
676ccf862c igt/gem_linear_blits: Add sufficient RAM check
References: https://bugs.freedesktop.org/show_bug.cgi?id=85834
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-11-04 07:42:14 +00:00
Thomas Wood
b78d142a15 build: fix distcheck
Fix distcheck issues introduced by commit 685e577 (Move library
selftests to lib/tests).

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-10-29 17:26:34 +00:00
Daniel Vetter
b6715d9aa7 tests: Reenable testdisplay
This seems to have been accidentally disabled in

commit 982f7eb238a0898c456e0574dee7c4507738d75f
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Aug 29 15:19:57 2014 +0100

    Prepare for 64bit relocation addresses

Apparently no one noticed.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-10-29 13:33:30 +01:00
Daniel Vetter
97f3391255 tests/testdisplay: Fix test status check fumble
This is a regression from

4306538d1d3f60877866c39c9ca953cc5e541dae is the first bad commit
commit 4306538d1d3f60877866c39c9ca953cc5e541dae
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Thu Oct 2 11:18:20 2014 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Thu Oct 2 11:34:55 2014 +0200

    tests: Sprinkle missing igt_exit() where needed.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85582
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-10-29 13:29:32 +01:00
Daniel Vetter
685e57736a Move library selftests to lib/tests
Again they're not really igt testcases so are in the way of
running spatch unconditionally. Move them someplace else.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-10-29 13:29:32 +01:00
Daniel Vetter
9d6a2cacf6 Move watermark code from tests to tools
They're now igt tests, and so if you blindly run lib/igt.cocci with
spatch on tests/*c they get mangled. Move them away, but still keep
them as noinst targets.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-10-29 13:29:32 +01:00
Paulo Zanoni
15972aa866 tests/pm_rpm: add system-suspend-{execbuf,modeset} subtests
We were having a problem where the system-suspend test was passing,
but then the next test - gem-execbuf-stress - was failing because of
bugs caused by the suspend subtest. So add a single test that emulates
the same problem, and another test that just sets a mode after resume.
This way, we should be reproducing the problem even if you don't run
the tests in the order they are defined.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2014-10-27 18:12:29 -02:00
Damien Lespiau
cba3088619 skl_ddb_allocation: Respect the minimum number of blocks
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-10-26 16:32:21 +00:00