3139 Commits

Author SHA1 Message Date
Thomas Wood
5fe9c88bda lib: add optional log domain filtering
v2: add an "application" filter for the default domain (used by
    applications)

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-11 17:57:03 +00:00
Thomas Wood
8161a21762 lib: introduce log domains
Log domains can be used to identify the source of log messages, such as
the test being run or the helper library.

v2: Add separate domains for different parts of the helper library and
    use an empty default domain for applications.
    Expand the log output to include the process name and the log level
    of the message in addition to the domain and pid.
    Print the expanded message only for warning and debug messages.

v3: check for glibc before using program_invocation_short_name

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-11 17:55:15 +00:00
Thomas Wood
85b74d5c14 tests/gem_tiled_swapping: use igt_info logging wrapper
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-11 11:50:22 +00:00
Thomas Wood
16f1506ff6 tests: replace 3D test images
Use images with a smaller file size, created by saving the left and
right stereo output of glxgears.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-10 17:11:35 +00:00
Thomas Wood
bdbf78db01 tools: add missing copyright headers
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-10 15:55:58 +00:00
Thomas Wood
f3ae3deb4f NEWS: Updates
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-10 15:55:58 +00:00
Thomas Wood
e80922eba6 Add a MAINTAINERS file
Acked-by: Daniel Vetter <daniel.vetter@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-10 15:49:14 +00:00
Thomas Wood
84f23415c4 Update README
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-10 14:21:22 +00:00
Ville Syrjälä
5d46f68eab tests/kms_cursor_crc: Restore the valid pipe/connector combo check
The valid pipe/connector combo check was lost in
 commit 57259d714d3fe1170cf931af72648219856a9918
 Author: Daniel Vetter <daniel.vetter@ffwll.ch>
 Date:   Mon Nov 24 16:08:32 2014 +0100

    lib/igt_debugfs: Don't setup crc in _new

Restore it to make the test again useful on CHV.

Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-09 22:35:36 +02:00
Ville Syrjälä
b6f68c10b4 tests/kms_mmio_vs_cs_flip: Count valid tests for all crtcs
Report SKIP only if none of the pipe/connector combos worked, instead of
trying to report for each pipe separately.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-09 20:41:18 +02:00
Ville Syrjälä
1b6eb414f3 lib/igt_debugfs: Throw away the two first CRCs
On CHV we sometimes see not just one but two bad CRCs. No real idea
what would cause that, but let's just throw away the second CRC as
well to gain some stability for the tests.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-09 20:41:18 +02:00
Damien Lespiau
01153e7d5f drv_hangman: Remove unused function
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-12-09 17:10:42 +00:00
Damien Lespiau
d49ef76e98 kms_cursor_crc: Remove value to 'return' in a void function
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-12-09 17:07:22 +00:00
Jani Nikula
c252c77dbf tools: terminate getopt_long long option arrays properly
The last element of the long options array has to be filled with zeros.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2014-12-09 15:49:10 +02:00
Ville Syrjälä
f333981e1a tests/kms_flip: Target the back buffer with the dummy load
Aim the dummy load to the current back buffer instead if the front
buffer. Assuming the idea is to get the next flip to be stuck behind
the dummy load?

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Ville Syrjälä
092682a3e5 tests/kms_flip: Calibrate the dummy load delay in kms_flip
Try to tune the dummy load to ~1 second. The calibration happens the
first time dummy load is generated.

v2: Actually do the number of ops intended and
    calibrate to 1 second and not 2

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Ville Syrjälä
b0cb1e1f9d tests/kms_flip: Use fixed size (2kx2k) buffers for dummy load
Make the dummy load independent of the display resolution by using a
two fixed size dummy bos to generate the load. As a final step do
another copy from one of the dummy bos to the fb to make sure there's
a dependency between the dummy load and any subsequent operation on
the fb.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Ville Syrjälä
21db302c9b tests/kms_flip: Refactor blit code
Pull the code to emit a single blit to a separate function.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Ville Syrjälä
8032f526ef tests: Run lib/igt.cocci
Found some open coded min()/max()/swap() macros.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Ville Syrjälä
e1bdab9973 lib/igt.cocci: Deal with min/max/swap
Replace open coded min/max/swap with the macro invocation.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Ville Syrjälä
1658edceee lib: Add swap() macro
swap() will swap its two arguments while keeping the required
tmp variable hidden. Makes for neater code.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-12-08 19:26:39 +02:00
Imre Deak
b32b5327a2 tests/pm_rps: vlv: round middle point to freq supported by HW
When setting the calculated middle frequency value the test assumes that
the HW/kernel rounds this value according to a 50MHz step value. This is
not so at least on VLV/CHV, on my B0 BYT-M for example this step value
is 22MHz, so there the test will fail.

To fix this get the nearest supported value by setting the target
frequency as a min or max frequency and read it back. The kernel will
round the returned value to the nearest supported.

v2:
- remove the 50MHz rounding that was done for non-VLV platforms, the new
  way of rounding should provide the correct value for all platforms
  (Ville)

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
2014-12-08 12:36:59 +02:00
Imre Deak
f70afed4c7 tests/pm_rps: vlv: load gpu for idle min/max tests
When changing the sysfs GT min/max frequencies, the kernel won't
explicitly change the current frequency, unless it becomes out of bound
based on the new min/max values. The test happens to work on non-VLV
platforms because on those the kernel resets the current frequency
unconditionally (to adjust the RPS interrupt mask as a side-effect) and
that will lead to an RPS interrupt setting the minimum frequency.

To fix this load the GPU after decreasing the min frequency and before
checking the current frequency. This should set the current frequency to
the minimum.

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
2014-12-08 12:36:54 +02:00
Imre Deak
aabf2d0952 tests/pm_rps: vlv: wait for freq to settle
At least on VLV when forcing a new GT frequency by writing to the
min/max freq sysfs entries the kernel doesn't wait until the new
frequency settles, so the subsequent readback check might fail. To fix
this wait until the current frequency is between the min/max values
using a 10ms timeout.

Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
2014-12-08 12:36:28 +02:00
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
Chris Wilson
b64704673e intel_error_decode: Decode the ERROR register on Sandybridge and Ivybridge
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-12-05 11:28:04 +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
c76f35386c lib: always reset connectors after the state is forced
Install the exit handler to reset connector states whenever
kmstest_force_connector is called, so that the connector states are
always reset even if a test fails.

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
273a06dc9b igt_kms: add a base edid
Add a basic edid block that includes several different display modes.

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
Thomas Wood
029dee7979 docs: treat the test description as cdata
Enclose the test description in cdata tags since the test descriptions
come from the tests themselves and may not be escaped for use in xml.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
a5425a101c docs: add a glossary of test name terms
Add a glossary of test name terms based on the details in
tests/NAMING-CONVENTION.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
bc6dc7efdb docs: add exit status documentation
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
e4e18faffc docs: add subtest lists to test descriptions
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-12-04 16:07:55 +00:00
Thomas Wood
7d2ab7083b docs: split the test program documentation into sections
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
10c6ad3805 lib: Add GPGPU fill
This is to add fill operation using GPGPU pipeline which is similar to
current media fill. This can be used to simply verify GPGPU pipeline
and help to enable it on newer HW, currently it works on Gen7 only and
will add support on later platform.

Now this sets very simply thread group dispatch for one thread per
thread group on SIMD16 dispatch. So the fill shader just uses thread
group ID for buffer offset.

v2: No new fill func typedef but adapt to igt_fillfunc_t.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2014-12-04 10:17:16 +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
dbac905600 lib: ensure subtests are not added to simple tests
Simple tests do not support subtests, so fail if igt_subtest is used in
one.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-25 15:18:48 +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
Thomas Wood
ae3a946631 lib: fix symbol names in documentation comments
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-25 11:59:37 +00:00