1883 Commits

Author SHA1 Message Date
Tim Gore
d3d56bf2af tests/gem_ctx_exec.c: only hang the ring we are testing
In the reset-pin-leak test we were calling
igt_set_stop_rings(STOP_RING_DEFAULTS) which sets the
stop_rings bits for all gpu engines. But we only submit
work to the render engine. When TDR is enabled (as it is
in Android currently) only the render engine gets reset,
which clears the stop_rings bit for the render engine but
not for the other engines. This causes the test to fail on
the second iteration because stop_rings is not clear.

So just set the stop_rings bit for the engine we are going
to hang, namely the render engine.

Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-08-25 17:20:14 +01:00
Paulo Zanoni
71b85f9713 kms_frontbuffer_tracking: print the status when it's not what we expect
Printing the status on an unexpected failure is always the first thing
I do. So do this always.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-25 11:36:01 -03:00
Paulo Zanoni
a07d0a47be kms_frontbuffer_tracking: add slow_draw() subtest
It fails on my SKL machine.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-25 11:35:30 -03:00
Paulo Zanoni
229110442a kms_frontbuffer_tracking: wait for PSR to be HW Enabled & Active
Make sure PSR is fully there.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-25 11:34:56 -03:00
Paulo Zanoni
c1fe951b8a kms_frontbuffer_tracking: add options for setting the shared fb X/Y
I'm using this to debug some aspects of the GTT tracking.

While at it, do a small rename and fix the ASCII art.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-25 11:34:28 -03:00
Thomas Wood
804e11f40d lib: add a single include header
Add a header that includes all the headers for the library. This allows
reorganisation of the library without affecting programs using it and
also simplifies the headers that need to be included to use the library.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-08-21 09:37:10 +01:00
Mika Kuoppala
c37b235202 tests/drv_hangman: Adjust to 64bit bb offsets
commit e1f123257a1f7d3af36a31a0fb2d4c6f40039fed
Author: Michel Thierry <michel.thierry@intel.com>
Date:   Wed Jul 29 17:23:56 2015 +0100

    drm/i915: Expand error state's address width to 64b

changed the batch buffer address to be 64b. Fix the parsing
of gtt offset accordingly.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91638
Cc: Akash Goel <akash.goel@intel.com>
Cc: Michel Thierry <michel.thierry@intel.com>
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2015-08-19 12:12:28 +03:00
Paulo Zanoni
64590c7b76 kms_frontbuffer_tracking: reduce the FBC wait timeout to 2s
Just like we did for PSR, let's do it for FBC. FBC gets reenabled in
just 50ms, so the 5000ms timeout is huge. On the other hand, we only
pay the 5000ms timeout full price 9 times when running
kms_frontbuffer_tracking --fbc-only, so this change shouldn't save too
much time.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 19:14:49 -03:00
Paulo Zanoni
f4db3b1884 kms_frontbuffer_tracking: reduce the PSR wait timeout to 2s
PSR only takes up to 100ms to be enabled, but we were using 5000ms
timeouts. The problem with PSR is that the MMAP_GTT tests have to
assert that PSR is disabled and stays disabled during the whole
timeout, so that 5s cost is a little to high when we consider that we
do the full 5s wait 74 times when running kms_frontbuffer_tracking
--psr-only.

By reducing to 2s we still make sure we're safe, since we're waiting
20x the time PSR needs to get reenabled, and we reduce the runtime of
running kms_frontbuffer_tracking --psr-only from 14m10s to 10m29s.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 19:14:26 -03:00
Paulo Zanoni
78120d8158 kms_frontbuffer_tracking: add subtests for rgb565 and rgb101010
Make sure valid formats work properly and invalid formats keep the
features disabled.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:33:50 -03:00
Paulo Zanoni
c3fb972ee9 kms_frontbuffer_tracking: fix psr-farfromfence assertions
We're using GTT draws and they disable PSR. This test is mostly for
FBC anyway.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:33:26 -03:00
Paulo Zanoni
d675cf3ed7 kms_frontbuffer_tracking: split prepare_subtest() in two functions
And remove duplicated code by calling prepare_subtest_data() on
rte_subtest().

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:32:59 -03:00
Paulo Zanoni
6de5b06112 kms_frontbuffer_tracking: remove duplicated pairs on multidraw
If we already tested the combination of m1+m2, don't test m2+m1 later:
the drawing pattern used already has 4 squares, so we're already
testing the "m2 followed by m1" case.

This should reduce the test time from about 60s to about 30s.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:32:36 -03:00
Paulo Zanoni
a2904ead74 kms_frontbuffer_tracking: SKIP if not enough stolen is available
This is not an FBC bug.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:32:12 -03:00
Paulo Zanoni
f62a683acd kms_frontbuffer_tracking: use all drawing methods on multidraw_subtest
Instead of having a single pair of methods per subtest. Having this in
pairs is not very useful since we end doing all the drawing methods
per subtest anyway.

This saves a few modesets, which makes eDP slightly faster - about 22s
on my local machine.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:31:44 -03:00
Paulo Zanoni
b53bcf789b kms_frontbuffer_tracking: improve support for multiple pixel formats
We now have per-pixel-format FBs and CRC values. Also t->format to
indicate the format we're using on the subtest. We still only use the
default RGB888 format (AKA FORMAT_DEFAULT) for all tests since
multiplying the current number of tests by the number of new pixel
formats doesn't sound like a great idea.

With this, it should be really easy to add new tests that use
different pixel formats.

Also, if you want a full IGT run on a specific pixel format, all you
need to do is to change FORMAT_DEFAULT.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:31:22 -03:00
Paulo Zanoni
3b17600789 kms_frontbuffer_tracking: add information about more formats
We're not using those formats yet, but a simple change to create_fb()
allows us to use these formats without problems now.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:30:56 -03:00
Paulo Zanoni
606f039dec kms_frontbuffer_tracking: introduce enum color
We want to add support for different pixel formats and the current
hardcoded pixel values won't work with that. So add enum color and
its auxiliary functions so we can decide the pixel values based on the
chosen color enum.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:30:28 -03:00
Paulo Zanoni
7009b10c42 kms_frontbuffer_tracking: don't pass the format to create_fb()
It is create_fb() who is going to decide the buffer format based on
the arguments provided by the caller. This is another step for the
non-XRGB8888 support.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:30:07 -03:00
Paulo Zanoni
e4b94900b5 kms_frontbuffer_tracking: add a wrapper for igt_create_fb()
The wrapper will do a few additional things when we add support for
formats different than XRGB8888.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:29:18 -03:00
Paulo Zanoni
445182f26b kms_frontbuffer_tracking: fix MMAP_WC assertions on PSR
Now that the MMAP_WC operations call the dirty ioctl, PSR gets
reenabled after some time. So we have to adjust op_disables_psr() to
take that into account.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:28:49 -03:00
Paulo Zanoni
caaf3b869f lib/igt_draw: add support for RGB565 and XRGB2101010
We need to test those pixel formats on the FBC code, so let's make
sure the drawing library works on them first.

v2: Update the gtkdoc (Daniel).

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-14 15:27:19 -03:00
Jesse Barnes
87a5f2d776 tests/kms_setmode: mark simple clone test as basic
Should cover simple, single CRTC mode sets.

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
e5839d240a tests/kms_flip: add basic tests for flip, flip vs dpms, and flip modeset v2
Simple variants that don't do multiple output or interruptible testing.

v2: add vblank variant, remove duplication (Daniel)

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
5134f2c96d tests/pm_rpm: mark RTE and D3 tests as basic
These always need to pass for basic PM functionality.

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
68d1b532fa tests/pm_backlight: mark simple test as basic
We should be able to adjust the backlight and observe changes in sysfs.

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
ec4b76872d tests/kms_addfb: mark simple fb creation tests as basic v2
We should always be able to create simple and tiled objects.

v2: make the whole test basic (Daniel)
    add to .gitignore

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
503420944d tests/gem_tiled_pread: mark normal tests as basic v2
These simple tests should always pass.

v2: drop pwrite variant as it's more of a stress test (Daniel)
    add to .gitignore

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
5001640718 tests/gem_pread/pwrite: mark normal tests as basic
These should always pass.

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
c51c1ed776 tests/gem_mmap_gtt: mark basic access and copy tests as basic v2
These ones should always pass and are fairly quick.

v2: add more tests (Daniel)

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:33 -07:00
Jesse Barnes
90c47b2947 tests/gem_mmap: mark basic object creation tests as basic
We should be able to create small and moderate sized objects quickly and
without errors.

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:27:30 -07:00
Jesse Barnes
b0d8d73d8b tests/drv_getparams: mark EU and subslice fetch as basic v2
Fundamental and simple functionality.

v2: make whole test basic (Daniel)
    add to .gitignore

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:26:12 -07:00
Jesse Barnes
e920d719b2 tests/gem_flink, prime_self_import: mark flink and prime tests as basic v2
They're testing basic functionality and don't involve stress or race
induction.

v2: use gem_flink and prime_self_import tests instead (Daniel)
    add to .gitignore

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:26:12 -07:00
Jesse Barnes
dc9505a405 tests/drv_module_reload_basic: use linear_blits after module_reload for sanity check
Reduces runtime a lot...

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:26:12 -07:00
Jesse Barnes
4409c83284 tests/drv_module_reload: rename drv_module_reload to include in BATs
Absolutely-acked-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:26:12 -07:00
Jesse Barnes
0679702150 tests/gem_storedw_loop: add new store_dword test to unify per-ring ones v2
There was a lot of duplication going on...  Mark as basic while we're at
it as these should never fail.

v2: add to .gitignore

Reviewed-by: Daniel Vetter <daniel@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-14 09:26:12 -07:00
Chris Wilson
d568f69d5d igt/gem_mmap: Add one more extra large bo
Daniel complained that all the tests in gem_mmap.c were too quick. This
one aims to rectify that by double checking that if we mmap a buffer
larger enough to force swapping, everything still works.

Also fix the test to exercise the different object sizes!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-08-14 14:08:05 +01:00
Paulo Zanoni
c049096eb6 kms_frontbuffer_tracking: don't test SPR or CUR on multidraw
The goal of the multidraw subtest is to check if alternating drawing
methods can somehow break the feature. The plane we're drawing to
really shouldn't matter here - we have other tests to make sure
drawing on the different planes works correctly. So after this patch
we'll only run the multidraw subtest for the primary plane, not for
sprite and cursors anymore.

This makes "--no-edp --fbc-only --1p-only" go from 2m29s to 1m40s on
my machine.

Of course, we can still run these tests with the --show-hidden flag.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-13 10:08:33 -03:00
Paulo Zanoni
78d076268c kms_frontbuffer_tracking: don't test CUR or SPR planes on FBS_SHARED
We already tested these planes for FBS_INDIVIDUAL, and there are no
reasons to believe those planes will behave differently under
FBS_SHARED, so save some time avoiding potentially useless tests.

This makes "--no-edp --fbc-only --1p-only" go from 2m49s to 2m29s on
my machine.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-13 10:07:56 -03:00
Derek Morton
d524a964fc benckmarks/Android.mk: Fix building benchmarks for Android
The commit "benchmarks: Do not install to system-wide bin/" changed
the benchmark file list from bin_PROGRAMS to benchmarks_PROGRAMS.
However Android.mk was not updated, resulting in IGT failing to
build for Android.
This commit adds that change. It also adds LOCAL_MODULE_PATH to
specify where the built benchmarks should be put.

v2: I discovered that the existing definitions of LOCAL_MODULE_PATH
were creating what should have been an invalid path. Not sure how it
was ever working previously, but fixed now.

Signed-off-by: Derek Morton <derek.j.morton@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-08-13 11:28:22 +01:00
Thomas Wood
8a7c386f0a tests: update .gitignore
Add missing entry to .gitignore and sort alphabetically.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-08-12 16:33:58 +01:00
Ville Syrjälä
a149fb238a tests/gem_pwrite_snooped: Verify set_caching vs. pwrite clflush behaviour
The test does the following
1. set_domain src GTT
2. set_caching src NONE
3. pwrite src
4. set_caching src CACHED
5. blt src->dst
6. pread dst
7. verify data matches

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-08-12 16:24:51 +03:00
Ville Syrjälä
62426feec5 tests/kms_pwrite_crc: Use drmModeSetPlane() instead of igt_plane_set_fb()
igt_plane_set_fb()+igt_display_commit() have too much overhead, and that
causes the cache to get flushed before we flip, making the test
useless, at least on machines with small LLC. Switch to
drmModeSetPlane() to reduce the chance that the cache gets flushed
before we grab the crc.

Still nowhere near 100% reliable on my IVB laptop with 3 MiB LLC,
but at least it can now hit the problem occasioanally. My desktop
IVB with 8 MiB LLC seems to hit it rather reliably.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-08-12 16:24:50 +03:00
Daniel Vetter
adfc294384 tests: Document ABI extension catchers
Our invalid-flags/params testcases are meant to catch abi extensions
by just testing for the next available flag/param. Unfortunately we
need that since without those we forgot to write testcases for these
new flags way too often :(

But it's not entirely clear why this is, so document this trick with
comments.

Also gem_wait wasn't this paranoid, so change the testcase to be so.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-08-12 14:46:46 +02:00
Daniel Vetter
5b0a8433fd lib/core: Add igt_reset_timeout
Convenience wrapper suggested by Chris for igt_set_timeout(0, NULL).

v2: While at it add an empty line in kms_flip to make
set/reset_timeout a visual block.

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-08-12 14:46:46 +02:00
Daniel Vetter
370c989723 lib/core: Add optional reason for timeout failure
"Timed out" isn't a terribly informative message, allow users to set
something more informative. Inspired by a request from Jesse.

Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-08-12 14:46:40 +02:00
David Weinehall
24617ef82a tests/gem_ctx_param_basic: support NO_ZEROMAP
Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-08-12 14:42:46 +02:00
Jesse Barnes
db0f28aee8 Revert "tests/gem_ctx_param_basic: fix invalid params"
This reverts commit 0b45b0746f45deea11670a8b2c949776bbbef55c.

We want to check against our local copy of the params so we can at least
potentially catch new flag additions.

Requested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-06 14:35:34 -07:00
Jesse Barnes
0b45b0746f tests/gem_ctx_param_basic: fix invalid params
Use -1 as the invalid param since we've added more since this test was
created, causing expected EINVAL failures to return an unexpected error
code.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2015-08-06 13:17:48 -07:00
Paulo Zanoni
995f2738ad lib: add igt_debugfs_read()
A helpful function for when you want to read a whole debugfs file to a
string and don't want to worry about opening and closing file
descriptors and asserting buffer sizes.

We've been using this already for kms_frontbuffer_tracking and
kms_fbcon_fbt, so the only test with new code here is kms_fbc_crc.

Also notice that for kms_fbc_crc we had to increase the buffer size
since the file can sometimes be bigger than 64 bytes - depending on
the reason why FBC is disabled.

Of course, there are probably many other programs we can patch, but
I'm not doing this now.

v2: Add the macro to wrap sizeof() (Daniel).
v3: Add documentation for the macro too (Daniel).

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-08-05 17:30:58 -03:00