1975 Commits

Author SHA1 Message Date
Thomas Wood
97bf3f9a55 tests/core_setmaster_vs_auth: add test description macro
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-12-02 16:17:18 +00:00
Thomas Wood
66dc90ed65 tests/core_setmaster_vs_auth: use igt_simple_main
This test has no subtests, so should use igt_simple_main.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-12-02 15:02:52 +00:00
Thomas Wood
0394844a47 tests/gem_request_retire: add test description
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-12-02 15:02:52 +00:00
Jani Nikula
72b6bec370 tests: fix ddx_intel_after_fbdev to use intel_reg
intel_reg_dumper is gone, replaced by 'intel_reg dump'.

Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2015-12-02 13:14:03 +02:00
Daniel Vetter
5830a7a04b tests: Add core_setmaster_vs_auth.c
Embarrasingly I noticed that I need to git add the file when resolving
the conflict and manually applying my patch. But then I added the
wrong file ... Reported by Thomas Wood.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-12-01 18:33:17 +01:00
Daniel Vetter
80546d4576 tests/pm_rpm: Don't compare edid blob IDs
The kernel is free to allocate blob ids however it wants to. And also
to reallocate them whenever it sees fit. The only thing we are allowed
to compare is the length and the actual date.

Removing this bogus check makes drm-resources-equal on my snb.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90546
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-12-01 17:56:07 +01:00
Daniel Vetter
8133295d02 tests: add core_setmaster_vs_auth
Tests that master state isn't leaked to new masters by checking
that auth magics for the old master don't work any more.

Based upon a simple test program provided by Thomas.

v2: Use comment Thomas suggested on intel-gfx.

Cc: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2015-12-01 17:44:32 +01:00
Daniel Vetter
92e83cb379 tests: Rename drm_auth to core_auth
It really is a core drm testcase and not a libdrm testcase. While at it
also make it generic, since it is.

Cc: Daniel Stone <daniels@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-12-01 17:31:27 +01:00
Marius Vlad
4cfcea4056 tests/pm_rpm tests for set_caching and set_tiling ioctl(s)
v4: re-bind the gem objects each time before calling
disable_all_screens_and_wait().

v3: Use smaller sizes when allocating gem objects for caching tests.

v2: use mmap to gtt instead off cpu and various style-changes.

Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
2015-11-27 20:29:19 +02:00
Paulo Zanoni
d2a17f4bc4 kms_frontbuffer_tracking: add tilingchange subtest
During the review of a recent FBC patch, Ville pointed a problem that
happens when we use the page flip IOCTL to switch between buffers that
have different tiling formats. This test should catch the problem
introduced by that patch - which was not merged, by the way, so the
test should be passing.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-27 09:57:35 -02:00
Paulo Zanoni
98bb8428b2 kms_frontbuffer_tracking: assert the stride changes at stridechange()
We use igt_create_fb(), which decides the stride by itself: there's no
guarantee that making a buffer 512 pixels bigger is going to make its
stride change.

I had a fix for this problem that was supposed to be applied before
this patch, but due to a rework request I'm changing the order of the
patches, so we should expect to hit this assertion for now. At least
the root cause of the problem is clear now.

v2: Update the commit message due to the patch order changing.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-27 09:57:35 -02:00
Paulo Zanoni
f23ea58f1f kms_frontbuffer_tracking: expand badstride and stridechange
Make those subtests try to change the stride using multiple APIs so we
can catch errors that affect full modesets, fast modesets and page
flips.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-27 09:57:35 -02:00
Paulo Zanoni
340599c986 kms_frontbuffer_tracking: move flip_type to struct test_mode
Handle it just like we handle t->format. IMHO, it's better.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-27 09:57:35 -02:00
Paulo Zanoni
b4c58857e5 kms_frontbuffer_tracking: do page flips using the planes API
Add a new FLIP_PLANES enum so we can do "page flips" using it too. The
goal is to exercise the fast modeset paths on the Kernel.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-27 09:57:35 -02:00
Paulo Zanoni
d63413771f lib/igt_fb: also pass the stride to igt_create_fb_with_bo_size()
If the caller is going to specify a custom size, it's likely that he
will also specify a custom stride. The automatic stride picked by
create_bo_for_fb() is too huge for tiled buffers, so if the caller
wants smaller buffers, then he'll need a smaller stride too, otherwise
the Kernel will reject the addfb IOCTL due to stride * height being
bigger than the size.

I want to make tests/kms_frontbuffer_tracking use
igt_create_fb_with_bo_size() so I can provide smaller buffers that
will fit into the CFB. I'm also planning to make all frontbuffers with
the same width/height/format have the same stride and size regardless
of tiling method so I can exercise specific code paths.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-27 09:57:35 -02:00
Chris Wilson
26507f3e21 igt/gem_cs_prefetch: Convert to intel_require_memory()
Replace the open-coded memory check with intel_require_memory.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-27 10:03:55 +00:00
Chris Wilson
e10ba6b51c igt/drm_read: Clear O_NONBLOCK between tests
Ensure that O_NONBLOCK isn't accidentally set when we want a nonblocking
file descroptor.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-25 14:33:49 +00:00
Mika Kuoppala
32329b2e7d tests/drm_import_export: Always loop with mutex held
We assume that lock is held on start of the loop scope.
Some paths continuing inside loop didn't adhere to this
assumption, causing segfault on unlocking an already
unlocked mutex. Fix this by re-aquiring lock always.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93013
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
2015-11-25 15:52:18 +02:00
Chris Wilson
3b1a55874d igt/drm_read: Check handling of pagefault on destination buffer
In theory, this should force i915_gem_fault() when we first use the
buffer (and not at mmap time) and so prevent a __copy_to_user_inatomic()
from writting to the buffer.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-25 11:13:25 +00:00
Tvrtko Ursulin
dcdf21beb8 igt/gem_request_retire: Provoke context destruction with active VMAs
Test designed to trigger the
WARN_ON(!list_empty(&ppgtt->base.active_list))
in i915_gem_context_clean.

v2:
Simplify execbuf building and the test itself. Cleanup code. (Chris Wilson)

v3:
Removed asserts done by the helpers already. (Chris Wilson)

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-11-24 12:58:17 +00:00
Vivek Kasireddy
938b9306be igt/kms_rotation_crc: Add a new subtest to exhaustively test for fence leaks (v3)
In this subtest, as a first step, MAX_FENCES+1 number of framebuffers are
created backed up by objects that have multiple GGTT views (normal and
rotated). Next, we have the i915 driver instantiate a normal view followed
by a rotated view. We continue doing the above MAX_FENCES + 1 times.

v2:
- Add a igt_require() to check if there is enough GTT space left for
  MAX_FENCES+1 framebuffers. (Tvrtko)
- Make data2 local to test_plane_rotation_exhaust_fences(). (Tvrtko)
- If there is a failure, deallocate all the previously allocated
  framebuffers before asserting.

v3: Close the gem handle if set_tiling or addfb fails. (Tvrtko)

Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2015-11-17 14:34:51 +00:00
Ville Syrjälä
92a803ffb0 tests/kms_3d: Use XRGB8888 instead of ARGB8888
We don't allow ARGB8888 anymore on primary planes on most platforms,
so use XRGB8888 instead as the format.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:42:26 +02:00
Ville Syrjälä
cba86e980f tests/kms_3d: Use igt_assert_eq()
Would be nice to see how many stereo modes we managed to extract from
the EDID if it doesn't match the expected 13. So use igt_assert_eq()
which prints the real count on failure.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:42:22 +02:00
Ville Syrjälä
e42936d86b tests/kms_addfb_basic: Add clobbered-modifier subtest
Make sure the kernel doesn't clobber the modifiers when the user didn't
pass any.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:35:28 +02:00
Ville Syrjälä
29cd8a092e tests/kms_flip: Add a note that the test was skipped when modeset fails
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:35:28 +02:00
Ville Syrjälä
a09880d1c3 tests/kms_flip: Modeset pipes in reverse order
To make more multi-pipe tests run on IVB, do the modesets in the reverse
order (ie. pipe C first, pipe A last). This way pipe B can't reserve the
2 shared FDI lanes before pipe C is set up.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:35:28 +02:00
Ville Syrjälä
5bb87dc0e5 tests/kms_flip: Disable all pipes before each test
Currently kms_flip leaks the state of the pipes from one subtest to the
next. Meaning a single pipe test can actually have two or more pipes
actually up and running, and similarly a two pipe test can have three
pipes running.

This is particularly nasty on IVB since one of the pipes still running
but not actually part of the test maybe have reserved the shared FDI
lanes, thus preventing one of the pipes taking part in the test from
being enabled.

To avoid such problems explicitly disable all pipes before each
subtests.

v2: Use kmstest_unset_all_crtcs() (Paulo)

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:35:28 +02:00
Ville Syrjälä
2f894820ac tests/kms_flip: Use human readable pipe and connector names
Print the pipes and connectors in a human readable form instead of using
the integer IDs.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2015-11-16 15:35:28 +02:00
Derek Morton
c8beadb811 tests/gem_exec_nop: Improved test run time
Reduced the Sleep period to 200mS and reduced the repetition count to 7
to decrease the test run time significantly.

v2: Changed uS to us
v3: removed the output formatting change as the issue will be addressed
in a seperate patch from Thomas Wood.
v4: mS -> ms

Signed-off-by: Derek Morton <derek.j.morton@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-13 14:08:54 +00:00
Maarten Lankhorst
464424dcee tests/kms_setmode: Handle MST correctly.
There is a MST encoder for each crtc, and each MST connector
will be connected to the encoder bound to that crtc.

This breaks the kms_setmode assertion that is only 1 encoder per
connector, so make an exception to that rule for displayport.

Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2015-11-12 13:33:42 +01:00
Chris Wilson
143a216058 igt/gem_mmap_gtt: Require SET_TILING to work before doing large tiled tests
Older generations are more limited in how much they can fence, and the
limits is enforced in the SET_TILING ioctl. So if it reports an EINVAL,
we cannot perform the tiled test and may just skip it instead.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-12 09:30:39 +00:00
Chris Wilson
0c26652911 igt/gem_concurrent_all: Add testcases that split the copying across rings
More inter-ring concurrency tests.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-11 17:27:22 +00:00
Thomas Wood
3dce57a699 tests/kms_force_connector: reset connectors and edid on exit
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:52:44 +00:00
Thomas Wood
a8f6357430 tests/kms_force_connector: clear forced edid in reset
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:50:53 +00:00
Thomas Wood
5652985a54 tests/kms_force_connector: use comparison macros
Use the comparison macros to make debug output clearer.

v2: fix incorrect comparison

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:50:53 +00:00
Thomas Wood
d014339009 tests/kms_force_connector: add an option to reset connector force states
v2: add missing igt_exit call and fix reset_connectors definition

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:49:46 +00:00
Thomas Wood
01e1fca582 tests/kms_force_connector: skip if the required connector is connected
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:21:12 +00:00
Thomas Wood
5570060d33 tests/kms_force_connector: free the display struct when no longer needed
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:21:12 +00:00
Thomas Wood
e9ed1a37fc tests/kms_fbc_crc: ensure context is initialized correctly
Initialization was included in commit a976d7e (tests/kms_fbc_crc:
refactor context handling code), but won't be executed since it is
declared before the first label within a switch statement.

kms_fbc_crc.c:178:2: warning: ‘context’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  rendercopy(batch, context,
  ^
kms_fbc_crc.c:271:22: note: ‘context’ was declared here
   drm_intel_context *context = NULL;

                      ^
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-11-11 14:20:56 +00:00
Thomas Wood
52a393a311 tests: remove duplicate struct member initializers
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:20:55 +00:00
Thomas Wood
24b7bbc726 tests: remove unnecessary igt_exit calls
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:20:55 +00:00
Thomas Wood
36b8143c22 Add missing noreturn attribute to various functions
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-11-11 14:20:55 +00:00
Daniel Stone
bc37e0297c kms_atomic: Add basic atomic modesetting tests
Add tests for KMS atomic modesetting, to exercise the basic interface
and test failure/corner cases. Should ensure coherency between the
legacy and atomic interfaces.

v2: New patch.
v3: Disable connector checking for now, as it was causing GPU hangs on
    newer kernels.
v4: Rebase.
v5: Use do_ioctl or do_ioctl_err consistently. Use igt_assert_*()
    helper macros rather than igt_assert() directly.
    Move assertions into helper/check functions. Define atomic commit
    helper.
v6: Use do_ioctl_err, and define macros to move errors to
    actual callsite, rather than helper functions.

Co-authored-by: Micah Fedke <micah.fedke@collabora.com>
Signed-off-by: Daniel Stone <daniels@collabora.com>
2015-11-03 19:46:12 +00:00
Daniel Stone
b7a555e997 tests/core_prop_blob: Add multiple blobs per connection
This should hit the bug fixed in:
    commit 8731b269f01e16193390c7276e70530366b8d626
    Author: Maneet Singh <mmaneetsingh@nvidia.com>
    Date:   Thu Oct 8 10:10:24 2015 -0400

        drm: Correct arguments to list_tail_add in create blob ioctl

        Arguments passed to list_add_tail were reversed resulting in deletion
        of old blob property everytime the new one is added.

        Fixes

        commit e2f5d2ea479b9b2619965d43db70939589afe43a
        Author: Daniel Stone <daniels@collabora.com>
        Date:   Fri May 22 13:34:51 2015 +0100

            drm/mode: Add user blob-creation ioctl

        Signed-off-by: Maneet Singh <mmaneetsingh@nvidia.com>
        [seanpaul tweaked commit subject a little]
        Signed-off-by: Sean Paul <seanpaul@chromium.org>
        Cc: stable@kernel.org # v4.2
        Reviewed-by: Daniel Stone <daniels@collabora.com>
        Reviewed-by: Jani Nikula <jani.nikula@intel.com>
        Signed-off-by: Dave Airlie <airlied@gmail.com>

which was introduced with the initial blob support in:
    commit e2f5d2ea479b9b2619965d43db70939589afe43a
    Author: Daniel Stone <daniels@collabora.com>
    Date:   Fri May 22 13:34:51 2015 +0100

        drm/mode: Add user blob-creation ioctl

        Add an ioctl which allows users to create blob properties from supplied
        data. Currently this only supports modes, creating a drm_display_mode from
        the userspace drm_mode_modeinfo.

        v2: Removed size/type checks.
            Rebased on new patches to allow error propagation from create_blob,
            as well as avoiding double-allocation.

        Signed-off-by: Daniel Stone <daniels@collabora.com>
        Reviewed-by: Maarten Lankhorst <maarten.lankhorst@intel.com>
        Tested-by: Sean Paul <seanpaul@chromium.org>
        Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Signed-off-by: Daniel Stone <daniels@collabora.com>
2015-11-03 19:46:12 +00:00
Daniel Stone
de7ccdd083 tests: Run igt.cocci
Signed-off-by: Daniel Stone <daniels@collabora.com>
2015-11-03 19:46:11 +00:00
Chris Wilson
f40a984413 igt/gem_userptr_blits: Correct the number of objects required
Since we allocate 2 times count number of objects, that is the number of
objects we should be using when checking for sufficient RAM to use for
the test.

References: https://bugs.freedesktop.org/show_bug.cgi?id=92799
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2015-11-03 16:52:57 +00:00
Vivek Kasireddy
fe548fab0a igt/kms_rotation_crc: Add a subtest to validate Y-tiled obj + Y fb modifier (v3)
The main goal of this subtest is to trigger the following warning in
the function i915_gem_object_get_fence():
	if (WARN_ON(!obj->map_and_fenceable))

To trigger this warning, the subtest first creates a Y-tiled object and
an associated framebuffer with the Y-fb modifier. Furthermore, to
prevent the map_and_fenceable from being set, we make sure that
the object does not have a normal VMA by refraining from rendering to the
object and by setting the rotation property upfront before calling commit.

v2: Do not call paint_squares and just use one output.

v3: Convert an if condition to igt_require and move the plane rotation
requirement further up before the fb allocation.

Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2015-10-30 09:15:55 +01:00
Paulo Zanoni
a2c67866fb kms_frontbuffer_tracking: remove opt.only_feature
That option is not needed anymore since:

commit 982934625ac67234c6d85c6cf29a5a487e54d4f0
Author: Thomas Wood <thomas.wood@intel.com>
Date:   Wed Sep 16 14:36:24 2015 +0100
    lib: allow wildcard matching when specifying subtests

In fact, using "--run-subtest 'fbc-*'" is better than using --fbc-only
due to how SKIPs are handled. In the former, only the tests matching
the expression are tried, so the number of SKIPs only contains the
number of tests on the specified pattern that were skipped. If you
used --fbc-only, all the non-fbc tests would count as SKIPs, so it
would be harder to know which of the tests marked as skipped were
actual FBC tests.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-10-23 15:01:05 -02:00
Paulo Zanoni
efc2e39a45 kms_frontbuffer_tracking: add stridechange subtest
This is a corner case not exercised by the other subtests. The test is
expected to pass both with the current Kernel tree and with the
patches that are on the mailing list.

The patches currently on the mailing list change how the CFB is
allocated, and this subtest is designed to make sure everything still
works as expected.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-10-23 15:00:45 -02:00
Paulo Zanoni
196179a2bc kms_frontbuffer_tracking: add flag to not assert feature status
This will be used by the stridechange subtest.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2015-10-23 15:00:21 -02:00