Chris Wilson [Tue, 3 Jun 2014 06:31:49 +0000 (07:31 +0100)]
igt/gem_evict_everything: Move assertion
If we move the assertion from out of the callback, we can get a much
more useful error message.
References: https://bugs.freedesktop.org/show_bug.cgi?id=79573
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Antti Koskipaa [Mon, 2 Jun 2014 10:43:18 +0000 (13:43 +0300)]
kms_cursor_crc: Test cursor size change ioctl
Now that we support cursor changes other than 64x64, a bug was found
where the size change was only applied at cursor enable time, rather
than at every update. Add a testcase for that.
Signed-off-by: Antti Koskipaa <antti.koskipaa@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 28 May 2014 14:19:16 +0000 (16:19 +0200)]
NEWS: Fix spelling a bit
Daniel Vetter [Wed, 28 May 2014 14:05:14 +0000 (16:05 +0200)]
NEWS: Don't forget the runtime pm helpers!
Daniel Vetter [Wed, 28 May 2014 14:02:08 +0000 (16:02 +0200)]
NEWS: Updates ...
Damien Lespiau [Wed, 28 May 2014 13:18:34 +0000 (14:18 +0100)]
build: Don't fail if SWIG isn't found
People from distros have reported that packaging the newer versions is
more difficult because we now depend on SWIG. We don't have to, it's
needed for the python dumper and is an optional build dependency.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Chris Wilson [Wed, 28 May 2014 08:01:56 +0000 (09:01 +0100)]
Factor in kernel object overhead when checking available memory for tests
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Ville Syrjälä [Tue, 27 May 2014 18:33:10 +0000 (21:33 +0300)]
tests/kms_flip: Make flip-vs-panning-vs-hang change DSPSURF
Make sure DSPSURF will change during the panning operation
in flip-vs-panning-vs-hang.
This will now test agains bugs between the kernel's mmio vs.
CS flip race handling and GPU resets. If the kernel is buggy
if will fail to notice that the panning operation changed the
base address before the GPU reset had a chance to deal with the
pending page flips, and so the flip would never complete due to
DSPSURFLIVE not matching the expected value.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tim Gore [Tue, 27 May 2014 15:45:24 +0000 (16:45 +0100)]
intel-gpu-tools: Skip kms_mmio_vs_cs_flip if no cairo
The kms_mmio_vs_cs_flip test uses igt_kms.c which in turn
uses cairo. So in Android.mk add this test to the skip list
if we dont have cairo
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 22 May 2014 15:29:48 +0000 (17:29 +0200)]
tests/kms_pipe_crc_basic: Add gpu hang tests
Currently pipe CRC support is broken after gpu hangs. This tests for
this bug.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 22 May 2014 14:27:44 +0000 (16:27 +0200)]
tests/kms_pipe_crc_basic: Add suspend tests
Currently broken ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Mika Kuoppala [Tue, 20 May 2014 08:25:48 +0000 (11:25 +0300)]
tests/drv_hangman: Add subtest for error state capture/dump
Guarantees that error capture works at a very basic level.
v2: Also check that the ring object contains a reloc with MI_BB_START
for the presumed batch object's address.
v3: Chris review comments:
- Move variables to local scope.
- Do not assume there is only one request.
- Some gen encode flags into the BB start address.
Also, use igt_set/get_stop_rings as suggested by Mika Kuoppala.
v4: Make as a subtest of drv_hangman.
v5: Rebase
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> <v4>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Mika Kuoppala [Mon, 19 May 2014 14:42:21 +0000 (17:42 +0300)]
tests/drv_hangman: Convert test from shell script to c
Mixing script and standlone tests didn't mix well with the
strict i915_ring_stop flags handling. Also squash drv_missed_irq_hang
to the new test.
v2: - Remove missed irq test (Daniel Vetter)
- gitignore fixed (Oscar Mateo)
- fix check_other_clients to handle dangling fd's
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78322
Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Oscar Mateo <oscar.mateo@intel.com> <v1>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Chris Wilson [Thu, 22 May 2014 09:20:33 +0000 (10:20 +0100)]
igt/gem_userptr_blits: Fix up last minute API changes
When the patch was merged, the ioctl numbers had to be adjusted to leave
no holes. Also there was a final piece of munging of the API to
downgrade unsynced userptr for export over dma-buf.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Ville Syrjälä [Mon, 14 Apr 2014 13:14:40 +0000 (16:14 +0300)]
tests/kms_mmio_vs_cs_flip: Add a test case to exercise mmio vs. CS flip races
kms_mmio_vs_cs_flip has two subtests:
- setplane_vs_cs_flip tests the interaction between
fullscreen sprites and CS flips
- setcrtc_vs_cs_flip tests the interaction between
primary plane panning and CS flips
v2: Skip sprite test when there are no sprites
Reduce busy_bo to 64MB (now works on my gen2)
Handle pipe vs. port incompatibility
v3: Handle missing auto pipe crc
Reviewed-by Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Daniel Vetter [Thu, 22 May 2014 07:34:36 +0000 (09:34 +0200)]
tests/kms_sink_crc_basic: Use igt_assert
Less verbose code makes for clearer test logic.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 22 May 2014 07:32:22 +0000 (09:32 +0200)]
tests/kms_sink_crc_basic: skip properly
Not running the test is not failing.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 22 May 2014 07:07:45 +0000 (09:07 +0200)]
Revert "Revert "store_dw_loop: make loops smaller""
This reverts commit
3005ac3ee8d7aede73a3e63d2068a6074156ebe5.
QA has done the testing we've wanted.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Tue, 20 May 2014 13:45:31 +0000 (15:45 +0200)]
tests/kms_flip: various improvements
- Some debug logging for the ts continuity checks.
- Add a plain vblank-vs-suspend test where kms_flip doesn't switch off
the displays first.
- Ensure that we do at least 2 rounds, the suspend tests bailed out
after 1 round and so didn't test anything.
- Frob the testnames a bit.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Tue, 20 May 2014 12:42:12 +0000 (14:42 +0200)]
tests/kms_flip: Add vblank vs. gpu hang testcase
Currently broken :(
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Xiang, Haihao [Tue, 25 Mar 2014 05:55:14 +0000 (13:55 +0800)]
assembler: distinguish the channel of .z from the condition of .z
The scratch patch only works for generic register
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75631
Tested-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Xiang, Haihao [Tue, 25 Mar 2014 05:41:25 +0000 (13:41 +0800)]
assembler: switch the order of swizzle and regtype to match the BNF of the assembly
Fortunately our existing source didn't use swizzle.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75631
Tested-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Imre Deak [Sun, 18 May 2014 20:37:56 +0000 (23:37 +0300)]
igt/quickdump: vlv: dump FLISDSI regs too
Signed-off-by: Imre Deak <imre.deak@intel.com>
Imre Deak [Mon, 19 May 2014 10:26:35 +0000 (13:26 +0300)]
igt/intel_iosf: rename IOSF sideband opcodes according to the spec
These opcodes are not specific for an endpoint, but are the same for all
endpoints. So rename them accordingly, using the name the VLV2 sideband
HAS uses. Also move the macros to the .c file, since they aren't used
anywhere else.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Daniel Vetter [Mon, 19 May 2014 16:11:34 +0000 (18:11 +0200)]
Revert "store_dw_loop: make loops smaller"
This reverts commit
f00efff326610fdba92dbc91d951790a3320052e.
This is a temporary revert since I want QA to first test with the
original testcase whether it got faster again. This is to test the
effects of
commit
227f782e4667fc622810bce8be8ccdeee45f89c2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Thu May 15 10:41:42 2014 +0100
drm/i915: Retire requests before creating a new one
We should revert this revert again as soon as QA has completed
testing.
References: https://bugs.freedesktop.org/show_bug.cgi?id=78024
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Jesse Barnes [Mon, 19 May 2014 15:44:12 +0000 (08:44 -0700)]
store_dw_loop: make loops smaller
These tests are really for catching TLB or GTT mapping failures due to
bad programming in the kernel driver. We've never needed more than a
few pages worth of data write to actually see those.
Chris Wilson [Mon, 19 May 2014 06:26:12 +0000 (07:26 +0100)]
igt/gem_bad_reloc: Refine for limited kernel w/a
One proposed solution only fixes up the SNA behaviour, so reduce the
test case to probe only that particular pathology.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Daniel Vetter [Fri, 16 May 2014 21:36:25 +0000 (23:36 +0200)]
tests/kms_sink_crc_basic: Put into righ Makefile target
If it's a simple test, it needs to be in the simple lists. Tests with
subtests go into the _M tests.
Without that test enumeration is all screwed up.
Cc: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Oscar Mateo [Fri, 16 May 2014 13:07:12 +0000 (14:07 +0100)]
tests/kms_flip: test a fb backed by a bo too big/small for its own good
This is a "review by igt test" for a bug located in
i915_gem_object_pin_to_display_plane and fixed by:
commit
392013bdd4b6128795e33c84bd6d6d3fd66ff0a3
Author: Oscar Mateo <oscar.mateo@intel.com>
Date: Fri May 16 11:23:12 2014 +0100
drm/i915: Gracefully handle obj not bound to GGTT in is_pin_display
Otherwise, we do a NULL pointer dereference.
I've seen this happen while handling an error in
i915_gem_object_pin_to_display_plane():
If i915_gem_object_set_cache_level() fails, we call is_pin_display()
to handle the error. At this point, the object is still not pinned
to GGTT and maybe not even bound, so we have to check before we
dereference its GGTT vma.
v2: Chris Wilson says restoring the old value is easier, but that
is_pin_display is useful as a theory of operation. Take the solomonic
decision: at least this way is_pin_display is a little more robust
(until Chris can kill it off).
v2: Avoid code duplication by using igt_create_fb_with_bo_size() as
requested by Ville Syrjälä (original author of the "too big" test idea).
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Oscar Mateo [Fri, 16 May 2014 13:07:11 +0000 (14:07 +0100)]
lib/igt_fb: igt_create_fb_with_bo_size
Useful for testing bigger/smaller fb-wrapped buffer objects.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Rodrigo Vivi [Fri, 16 May 2014 00:13:57 +0000 (20:13 -0400)]
tests/kms_sink_crc_basic: Basic test to verify Sink CRC debugfs.
v2: rebase after a long time.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Fri, 16 May 2014 08:33:28 +0000 (10:33 +0200)]
tests/pm_pc8 -> pm_rpm rename
Plus naming convention for runtime pm tests to have "rpm" somewhere in
their tests. Note that all the pc8-specific tests (for e.g. residency
or similar) already have pc8 in their subtest names, so we don't lose
any information here.
Cc: "Yang, Guang A" <guang.a.yang@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 15 May 2014 15:02:39 +0000 (17:02 +0200)]
tests/pm_pc8: Use igt_assert_cmpint
More pretty!
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Rodrigo Vivi [Thu, 15 May 2014 18:06:51 +0000 (14:06 -0400)]
tests/gem_bad_reloc: Adding missing include.
It was breaking compilation.
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
Daniel Vetter [Thu, 15 May 2014 14:35:32 +0000 (16:35 +0200)]
tests/kms_render: don't loop through modes
We kinda have testdisplay for this ... and doing this tends to take
forever.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77709
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 15 May 2014 08:03:11 +0000 (10:03 +0200)]
tests/gem_reg_read: Fix errno check
So I accidentally fixed a check when converting to the new macros and
the kernel never returned -ENOENT for invalid regs. Adjust the test.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 15:59:02 +0000 (17:59 +0200)]
tests/kms_flip: nasty power management tests
These check whether everything is still ok wrt vblank handling after
runtime pm and system suspend-resume.
In addition to the usual checks they also ensure that the vblank frame
counter isn't totally ridiculous, something Keith complained about
aeons ago. With Ville's drm_vblank_on/off rework this should now be
fixed and solid.
v2:
- Ignore seq_step, vblanks completely immediately when the crtc goes off
- Only run system suspend/resume tests once.
Cc: Keith Packard <keithp@keithp.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 14:10:50 +0000 (16:10 +0200)]
lib/igt_aux: Extract runtime pm helpers from pm_pc8
I want to use them elsewhere ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tim Gore [Thu, 15 May 2014 09:25:48 +0000 (10:25 +0100)]
intel-gpu-tools: Skip kms_fence_pin_leak if no cairo
The kms_fence_pin_leak test uses igt_kms.c which in turn
uses cairo. So in Android.mk add this test to the skip list
if we dont have cairo
Issue: VIZ-3894
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Chris Wilson [Thu, 15 May 2014 12:37:03 +0000 (13:37 +0100)]
igt/gem_ringfill: Only check for rendercopy when testing render ring
Overzealous test runner ftl.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78591
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 15 May 2014 12:23:44 +0000 (13:23 +0100)]
igt/gem_bad_reloc: Restrict negative reloc tests to IVB+
The bug doesn't seem to occur on SNB, so we can skip the workaround and
hence we do not expect the kernel to prevent invalid relocated offsets.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 15 May 2014 12:10:54 +0000 (13:10 +0100)]
gem_exec_lut_handle: Do a warm up pass before timing
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 15 May 2014 12:10:21 +0000 (13:10 +0100)]
gem_bad_reloc: Add subtest for LUT-based execbuffers
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 15 May 2014 07:43:11 +0000 (08:43 +0100)]
Add gem_bad_reloc
This test feeds a batch containing self-references into the kernel and
checks that the relocation offsets remain as valid GTT addresses. This
is to exercise SNA passing in negative relocation deltas which can hang
the GPU if they wrap around.
References: https://bugs.freedesktop.org/show_bug.cgi?id=78533
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Daniel Vetter [Wed, 14 May 2014 15:59:25 +0000 (17:59 +0200)]
tests/kms_flip: Fix vblank ts check
Oops, fumbled that in the conversion.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ville Syrjälä [Mon, 12 May 2014 11:18:42 +0000 (14:18 +0300)]
tests/kms_fence_pin_leak: Exercise full ppgtt fence pin_count leak in the kernel
The kernel full ppgtt support has a bug where it can drop a pinned
fence to the floor, hence we leak the pin_count as the subsequent
fence unpin becomes a nop. We can trigger it easily by unbinding a
buffer from a ppgtt address space while the buffer is simultaneosly
being used for scanout.
Make the kernel leak the fence pin_count and trick it into picking
a new fence register for the next scanout buffer. Looping like
this for a while we leak the pin_count for all fence registers after
which the kernel can no longer find a new fence register when it needs
one. As a result we get back a SIGBUS from the GTT mmap access.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Daniel Vetter [Wed, 14 May 2014 13:33:27 +0000 (15:33 +0200)]
lib/igt_core: Fixup docs with symbolic exit codes
Conflict between me and Thomas pushing patches in parallel.
Cc: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Thomas Wood [Tue, 13 May 2014 14:22:52 +0000 (15:22 +0100)]
lib: add exit status defines
Add defines for success, skip and timeout exit statuses.
Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Thomas Wood [Mon, 12 May 2014 09:20:55 +0000 (10:20 +0100)]
lib: set a timeout when reading crc values
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Thomas Wood [Mon, 12 May 2014 09:19:52 +0000 (10:19 +0100)]
lib: add igt_set_timeout
Add a function to stop and fail a test after the specified number of
seconds have elapsed.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Daniel Vetter [Wed, 14 May 2014 09:52:35 +0000 (11:52 +0200)]
tests/kms_flip: Use asserts
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 09:41:55 +0000 (11:41 +0200)]
tests/prime_nv_pcopy: Remove unused tiling tests
We now know that the hardware can't do this, and it's not designed to.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 09:39:31 +0000 (11:39 +0200)]
tests/prime_nv_pcopy: Drop return values from tests
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 09:31:31 +0000 (11:31 +0200)]
tests/prime_nv_pcopy: Drop return values from copy/check functions
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 08:57:46 +0000 (10:57 +0200)]
tests/prime_nv_pcopy: Use asserts in setup code
Now we even have more fine-grained checking and only skip if the
nouveau card isn't supported, but fail properly if something else goes
wrong.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 08:49:40 +0000 (10:49 +0200)]
tests/prime_nv_pcopy: Use asserts in nv_bo_alloc
Step one to untangle the control flow in this test and replace it all
with igt assert magic.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 08:44:16 +0000 (10:44 +0200)]
tests/prime_nv_api: Use asserts instead of control flow
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 08:07:17 +0000 (10:07 +0200)]
tests/gem_seqno_wrap: Replace control flow with asserts
Only tricky bit was a bit of debug output sprinkled all over, I've
moved it all to cmp_bo.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 14 May 2014 07:56:53 +0000 (09:56 +0200)]
tests: Use igt macros more
Often just folding together of the common if (cond) printf;
abort|igt_skip|igt_fail; pattern. But in a few cases I've ripped out
more since the igt macros will already print the condition and errno.
A few tests where more work (like ripping out return codes en masse)
is needed left as-is.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Tue, 13 May 2014 22:36:04 +0000 (00:36 +0200)]
tests: sprinkle igt logging
All the cases that simply dump some debug information and couldn't be
converted to some of the fancier macros.
Some information output removed when it's redundant with the subtest
status.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Imre Deak [Tue, 13 May 2014 12:49:58 +0000 (15:49 +0300)]
pm_pc8: add system-suspend subtest
Signed-off-by: Imre Deak <imre.deak@intel.com>
Ville Syrjälä [Tue, 13 May 2014 12:02:37 +0000 (15:02 +0300)]
tests/kms_fbc_crc: Use igt_create_color_fb()
No need to hand roll the alloc fb+paint code anymore, just use the
common helper.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Tue, 13 May 2014 11:49:53 +0000 (14:49 +0300)]
tests/kms_fbc_crc: Reset display state between subtests
If a subtest fails it'll leave the display in a state that may prevent
the next subtest from working. So reset the display state between
subtests.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Tue, 13 May 2014 10:56:41 +0000 (13:56 +0300)]
tests/kms_fbc_crc: Switch to using the igt_display stuff
Let's try to use the common igt_display framework to make the code a bit
nicer.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Tue, 13 May 2014 10:38:20 +0000 (13:38 +0300)]
tests/kms_fbc_crc: Simplify pipe_crc mess
There's no need to keep an array of pipe_crc objects around. Just keep
one for the duration of the specific crtc/connector/test combo.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Daniel Vetter [Tue, 13 May 2014 10:28:26 +0000 (12:28 +0200)]
lib/igt_core: Fix type on igt_log doc
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Tue, 13 May 2014 09:29:34 +0000 (11:29 +0200)]
lib/igt_core: Document testrunner interface a bit
Also fix up one gtkdoc fumble in igt_fb. We should use symbolic
defines if possible instead of just listening the magic 0, 77, 78
values for exit codes, but that's a separate patch.
Cc: tim.gore@intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tim Gore [Tue, 13 May 2014 08:34:42 +0000 (09:34 +0100)]
intel-gpu-tools: Move igt tests to intel validation area
Currently when IGT is built for Android the resulting test
executables go to /system/bin, which is not ideal. After
discussion with the core validation team i have moved them
to /system/vendor/intel/validation/core/igt by setting
LOCAL_MODULE_PATH.
I have also added a --defsym linker option to export a
symbol that allows a script to easily distinguish between
tests that have subtests and those that dont. There are
better ways to do this (viz, in the source code) but
because the igt tests are not written consistently this
would require many more changes.
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Tue, 13 May 2014 09:12:34 +0000 (11:12 +0200)]
NEWS: Android has libcairo support now!
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tim Gore [Mon, 12 May 2014 12:39:00 +0000 (13:39 +0100)]
intel-gpu-tools: Build tests needing cairo if ANDROID_HAS_CAIRO=1
Until now the tests that depended on libcairo were simply
skipped in the android build. Now that I have a cairo port
working, build these cairo dependent tests if ANDROID_HAS_CAIRO
is set to 1 in the environment.
For information on building cairo for IGT on Android see the
wiki at:
https://securewiki.ith.intel.com/display/GFXCore/IGT+Test+Suite+on+Android
Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Brad Volkin [Sat, 10 May 2014 21:11:53 +0000 (14:11 -0700)]
tests/gen7_forcewake_mt: Don't set the GGTT bit in SRM command
The command parser in newer kernels will reject it and setting this
bit is not required for the actual test case.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76670
Signed-off-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Imre Deak [Mon, 12 May 2014 10:29:49 +0000 (13:29 +0300)]
testdisplay: fix restoring termio at exit
At normal exit in test_all_modes we don't restore the original termio,
since g_io_channel_shutdown() closes the stdin fd and so the following
tcsetattr on stdin will fail. We also don't restore the termio at signal
exit. Fix both cases by installing an exit hanlder with a dup'ed stdin fd.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Ville Syrjälä [Thu, 8 May 2014 12:56:24 +0000 (15:56 +0300)]
tests/kms_fbc_crc: Check context support earlier
Check for context support before doing anything else in the subtest.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Thu, 8 May 2014 12:56:24 +0000 (15:56 +0300)]
tests/kms_fbc_crc: Allow the subtests to pass even if some planes aren't FBC capable
Don't skip the entire subtest if FBC only works on some of the primary
planes, as is the case on pre-gen4 and hsw+. Only skip the entire subtest
if all crtc/connector combinations skip.
Also print some kind of status for all otherwise valid crtc/connector combos
if they skip due to FBC being disabled or CRC support not being there.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Chris Wilson [Thu, 8 May 2014 10:56:56 +0000 (11:56 +0100)]
igt/gem_render_tiled_blits: Speed up by using the GPU to detile
Avoid accessing via the slow GTT to read back and compare the contents
of each bo against expected results. It is much faster, on llc at least,
to detile using the GPU and then copy to system memory for the compare.
Before:
IVB: time sudo ./gem_render_tiled_blits
IGT-Version: 1.6-ge46ff3f (x86_64) (Linux: 3.15.0-rc3+ x86_64)
Using 3072 1MiB buffers
Verifying initialisation...
Cyclic blits, forward...
Cyclic blits, backward...
Random blits...
real 6m26.005s
user 6m19.234s
sys 0m2.414s
PNV: time sudo ./gem_render_tiled_blits
IGT-Version: 1.6-g8556f8a (i686) (Linux: 3.15.0-rc2+ i686)
Using 768 1MiB buffers
Verifying initialisation...
Cyclic blits, forward...
Cyclic blits, backward...
Random blits...
real 1m45.431s
user 1m34.960s
sys 0m4.624s
Using pread:
IVB: time sudo ./gem_render_tiled_blits
IGT-Version: 1.6-ge46ff3f (x86_64) (Linux: 3.15.0-rc3+ x86_64)
Using 3072 1MiB buffers
Verifying initialisation...
Cyclic blits, forward...
Cyclic blits, backward...
Random blits...
real 0m14.717s
user 0m3.699s
sys 0m3.192s
Using snoop:
IVB: time sudo ./gem_render_tiled_blits
IGT-Version: 1.6-ge46ff3f (x86_64) (Linux: 3.15.0-rc3+ x86_64)
Using 3072 1MiB buffers
Using a snoop linear buffer for comparisons
Verifying initialisation...
Cyclic blits, forward...
Cyclic blits, backward...
Random blits...
real 0m13.774s
user 0m3.900s
sys 0m2.089s
PNV: time sudo ./gem_render_tiled_blits
IGT-Version: 1.6-g8556f8a (i686) (Linux: 3.15.0-rc2+ i686)
Using 768 1MiB buffers
Using a snoop linear buffer for comparisons
Verifying initialisation...
Cyclic blits, forward...
Cyclic blits, backward...
Random blits...
real 0m20.831s
user 0m4.384s
sys 0m5.032s
So roughly 10-30x faster depending on platform.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78244
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Thu, 8 May 2014 09:04:35 +0000 (10:04 +0100)]
igt/gem_lut_handle: Fix errno checking
Regression from
commit
c1404e05b7477122b9923ba029593c2cb64671a7
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Apr 29 07:14:33 2014 +0100
errno is reset after each syscall
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Mika Kuoppala [Wed, 7 May 2014 13:46:19 +0000 (16:46 +0300)]
tests/gem_flink_race,prime_self_import: fix object counts
We need to add one drm_open_any() before getting the object counts
as first call to drm_open_any() allocates file descriptors for
exit handlers and thus is not symmetrical.
The regression, assymmetric behaviour, was introduced 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
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77867
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77875
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Jani Nikula [Tue, 6 May 2014 11:06:52 +0000 (14:06 +0300)]
intel_bios_reader: make edp block decode match kernel
All the somewhat recent VBT specs and the kernel have different format
for the eDP block than what the tool decodes. What the tool does *may*
be correct for really old VBT, but I have no specs or other reference to
suppor this. Just do what the kernel does, that's what we're interested
in anyway.
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Chris Wilson [Mon, 5 May 2014 09:57:12 +0000 (10:57 +0100)]
gem_alive: A utility to see if the driver or GPU has hung
Chris Wilson [Wed, 30 Apr 2014 17:39:27 +0000 (18:39 +0100)]
overlay: Parse /proc/interrupts in lieu of debugfs/i915_gem_interrupt
So the interrupt counter was removed from i915_gem_interrupt, and if we
do not have the perf API available, we therefore need to read it from
/proc/interrupts instead.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Chris Wilson [Wed, 30 Apr 2014 17:38:26 +0000 (18:38 +0100)]
overlay: Use new i915_frequency_info in fallback code
Actually use the new location to get frequency information when perf is
not available.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Daniel Vetter [Thu, 24 Apr 2014 21:37:05 +0000 (23:37 +0200)]
tests/pm_pc8: subtests for runtime pm for dpms
Very basic since I lack a bit ideas. After all with the latest
patches runtime pm doesn't make much a difference between dpms off
and disabling the outputs completely with SetCrtc.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Thu, 24 Apr 2014 21:33:09 +0000 (23:33 +0200)]
lib: extract kmstest_set_connector_dpms
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Wed, 30 Apr 2014 16:05:21 +0000 (18:05 +0200)]
tests: Fix make depencies for test list
Oops, pretty bad ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ville Syrjälä [Tue, 18 Dec 2012 15:43:13 +0000 (17:43 +0200)]
Add Cherryview PCI IDs
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Daniel Vetter [Tue, 29 Apr 2014 15:17:24 +0000 (17:17 +0200)]
NEWS: Updates
Chris Wilson [Tue, 29 Apr 2014 06:14:33 +0000 (07:14 +0100)]
errno is reset after each syscall
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78055
Bugilla: https://bugs.freedesktop.org/show_bug.cgi?id=78053
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Ville Syrjälä [Mon, 28 Apr 2014 14:58:45 +0000 (17:58 +0300)]
tests/gem_stress: Fix rendercopy vs. keep_gpu_busy on gen6+
If the hardware has a blt ring blits aren't allowed on the render ring.
Trying to execute blits on the render ring results in a GPU hang.
Flush outstanding blits from keep_gpu_busy() before calling rendercopy()
so that they don't end up on the render ring.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Daniel Vetter [Mon, 28 Apr 2014 13:26:15 +0000 (15:26 +0200)]
tests/gem_exec_params: One more invalid ring tests
With the vebox 2 patches the number of internal rings don't match the
number of exposed rings. So add another subtest with an invalid ring
which should be invalid both internally and externally. The bug this
will catch is using the ring structure before validation, which the
old "invalide-ring" wont be able to due to the internal vebox2 ring.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Imre Deak [Fri, 25 Apr 2014 07:26:46 +0000 (10:26 +0300)]
tests/pm_pc8: skip the test if runtime PM is disabled
The PC8 state won't be entered unless runtime PM is enabled, so support
for PC8 residency counters alone is not enough to run this test.
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Fri, 25 Apr 2014 15:57:22 +0000 (17:57 +0200)]
test: Fixup for the previous patch
Oops, failed to git add.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Daniel Vetter [Fri, 25 Apr 2014 15:52:02 +0000 (17:52 +0200)]
test/gem_userptr_*: Fix compile fail
Also shut up warnings. Those revealed incorrect usage of local
variables in conjunction with igt_fixture/igt_subtest. Since those use
longjmps we need to move the out of the stackframe those magic blocks
are declared in.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tvrtko Ursulin [Fri, 25 Apr 2014 14:42:20 +0000 (15:42 +0100)]
tests/gem_userptr_benchmark: Benchmarking userptr surfaces and impact
This adds a small benchmark for the new userptr functionality.
Apart from basic surface creation and destruction, also tested is the
impact of having userptr surfaces in the process address space. Reason
for that is the impact of MMU notifiers on common address space
operations like munmap() which is per process.
v2:
* Moved to benchmarks.
* Added pointer read/write tests.
* Changed output to say iterations per second instead of
operations per second.
* Multiply result by batch size for multi-create* tests
for a more comparable number with create-destroy test.
v3:
* Use ALIGN macro.
* Catchup with big lib/ reorganization.
* Removed unused code and one global variable.
* Fixed up some warnings.
v4:
* Fixed feature test, does not matter here but makes it
consistent with gem_userptr_blits and clearer.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Brad Volkin <bradley.d.volkin@intel.com>
Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tvrtko Ursulin [Fri, 25 Apr 2014 14:42:19 +0000 (15:42 +0100)]
tests/gem_vmap_blits: Remove obsolete test case
No need for the old test case once the new one was added.
v2:
* Just rebase for lib/ reorganization.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tvrtko Ursulin [Fri, 25 Apr 2014 14:42:18 +0000 (15:42 +0100)]
tests/gem_userptr_blits: Expanded userptr test cases
A set of userptr test cases to support the new feature.
For the eviction and swapping stress testing I have extracted
some common behaviour from gem_evict_everything and made both
test cases use it to avoid duplicating the code.
Both unsynchronized and synchronized userptr objects are
tested but the latter set of tests will be skipped if kernel
is compiled without MMU_NOTIFIERS.
Also, with 32-bit userspace swapping tests are skipped if
the system has a lot more RAM than process address space.
Forking swapping tests are not skipped since they can still
trigger swapping by cumulative effect.
v2:
* Fixed dmabuf test.
* Added test for rejecting read-only.
* Fixed ioctl detection for latest kernel patch.
v3:
* Use ALIGN macro.
* Catchup with big lib/ reorganization.
* Fixed up some warnings.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Ville Syrjälä [Fri, 25 Apr 2014 12:27:57 +0000 (15:27 +0300)]
kms_cursor_crc: Fix the test on platforms where the pipe->port mapping has restrictions
On gen2 for instance the LVDS port can only be fed from pipe B. Check
whether the combinations is valid before trying to run the test. Also
clean up the state back to PIPE_ANY properly so that following tests
can again go through all the combinations.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75131
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Fri, 25 Apr 2014 10:37:09 +0000 (13:37 +0300)]
kms_cursor_crc: Wrap igt_require() in igt_fixture
igt_require() must be within a fixture or subtest.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Fri, 25 Apr 2014 10:38:31 +0000 (13:38 +0300)]
kms_cursor_crc: Replace snprintf()+%s with just %d
There's no point in first printing the int to temp string using %d
and then printing that out with %s. Just stick the %d into the final
string.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Fri, 25 Apr 2014 10:50:59 +0000 (13:50 +0300)]
kms_cursor_crc: Allow the test to run without cursor cap support
Assume that only 64x64 cursor size is supported if the cursor size caps
aren't supported by the kernel. This allows the test to run on older
kernels.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Ville Syrjälä [Fri, 25 Apr 2014 10:49:11 +0000 (13:49 +0300)]
kms_cursor_crc: Wrap cursor fb creating into igt_fixture
We don't want to attempt creating the cursor fb when enumerating
subtests. So wrap it into igt_fixture. Also destroy the cursor
fb after the tests.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>