summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2018-01-17meson: Refactor get_option() calls for directoriesPetri Latvala
Fetch the configuration values in the toplevel meson.build for all subdirs to share. v2: Also remember tests/intel-ci/meson.build Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-01-17tests/kms_plane_scaling: test for multi pipe with scaling, v3.Jyoti Yadav
Add a subtest to display primary and overlay planes on two connected pipes and runs scaling test on both pipes Changes since v1: - Commit first before trying any scaling. (Maarten) - Use the same logic as kms_cursor_legacy to find a pipe and output. (Maarten) - Rework test to work with how cleanup is handled. (Maarten) Changes since v2: - Use get_num_scalers() to only use 2 scalers if available. (Maarten) Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: test scaler with clipping clamping, v3.Jyoti Yadav
This patch adds subtest to test scaler clipping and clamping scenario. Changes since v1: - Modify test to work with the changes to kms_plane_scaling. (Maarten) Changes since v2: - Use get_num_scalers() to skip when needed. Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: test scaling with tiling rotation and pixel ↵Jyoti Yadav
formats, v3. This patch adds subtest for testing scaling in combination with rotation and pixel formats. Changes since v1: - Rework test to work with the other changes to kms_plane_scaling. (Maarten) - Remove hardcodes for MIN/MAX_SRC_WIDTH, and use the value directly. (Maarten) Changes since v2: - Put rotation and tiling in an array. (Maarten) Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: Clean up tests to work better with igt_kms, v2.Maarten Lankhorst
The test only runs on gen9+, so we can safely replace all calls with COMMIT_ATOMIC. Also perform some cleanups by making fb an array, and cleaning up in prepare_crtc. This way failed subtests won't cause failures in other subtests. Changes since v1: - Rebase on top of num_scalers changes. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: Move get_num_scalers to a function, v2.Maarten Lankhorst
The number of scalers can depend on the pipe, so require at least 1 scaler before running any subtests. Changes since v1: - More closely match kernel implementation. (Mika) Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: Convert from simple test to full testMaarten Lankhorst
Convert the test to run subtests per pipe, before we start adding more subtests. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: Fix basic scaling test, v3.Mahesh Kumar
PIPEC doesnt have 3rd plane in GEN9. So, we skip the 3rd plane related scaling test where 2nd OVERLAY plane is not available. Restricting downscaling to (9/10)x original size of the image to avoid "Max pixel rate limitation" of the hardware. When testing with a resolution of 1024x768, the test fails in iterate_plane_scaling because height becomes out of bounds. Lastly, instead of a fixed test image, generate a test pattern at runtime to not run into bxt's hardware limits for scaling. Later patches in this series will cover corner cases of scaling. Changes since v1: - Move out the code reshuffle to a separate commit. (Maarten) This makes it more clear what's fixed. Changes since v2: - Fix iterate_plane_scaling on 1024x768. (Maarten) - Instead of upscaling a test image, use the test pattern with a color. (Maarten) Using a 600x600 test pattern doesn't run into BXT's hardware limits for scaling. Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com> Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-17tests/kms_plane_scaling: Move the actual test to its own function.Maarten Lankhorst
We will add more subtests in the future, it's more clear if we split out the actual test to its own function first. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-16igt/gem_linear_blits: Compute GTT size using 4G limitChris Wilson
Both gem_linear_blits and gem_tiled_blit do not request the full 48b GTT layout for their objects, restricting themselves to 4G. The underlying test that they trigger eviction is unaffected by this restriction, so we can simply reduce their memory requirements to fill the low 4G GTT space and so allow them to run on 48b machines. v2: gem_tiled_fenced_blits as well Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-01-15tests/kms_plane: Run test for all supported pixel formats, v2.Mahesh Kumar
This patch adds a subtest related to pixel format testing. The test tries to create framebuffer with all supported pixel formats on every plane, and tries to draw them using cairo and commits the same on display. Changes since v1: - Make the test more generic and try on all planes, including legacy cursor. Signed-off-by: Mahesh Kumar <mahesh1.kumar@intel.com> Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-15tests/perf_pmu: Exercise busy stats and lite-restoreTvrtko Ursulin
While developing a fix for an accounting hole in busy stats we realized lite-restore is a potential edge case which would be interesting to check is properly handled. It is unfortnately quite timing sensitive to hit lite-restore in the fashion test needs, so downside of this test is that it sufferes from a high rate of false negatives. v2: * Make the sleep unconditional and use scientific notiation for large constants. (Chris Wilson) * Use gem_quiscent_gpu instead of gem_sync+usleep to ensure context complete was received under execlists. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-01-15tests/perf_pmu: Verify busyness when PMU is enabled after engine got busyTvrtko Ursulin
Make sure busyness is correctly reported when PMU is enabled after the engine is already busy with a single long batch. v2: * Make the sleep unconditional and use scientific notiation for large constants. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-01-11include inttypes.h for PRI definesMike Frysinger
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96620 Signed-off-by: Mike Frysinger <vapier@gentoo.org> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-01-08test/kms_psr_sink_crc - subtests psr_basic and psr_drrs need test cleanupMarta Lofstedt
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104260 Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
2018-01-04igt/perf_pmu: Skip GEM checks for repeated spin_batch allocationsChris Wilson
Each call to igt_spin_batch_new_fence will do a stalling check to verify that GEM is functional before submitting the spinning batch. In a loop, this means that we may end up waiting for our earlier spinning batches... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-01-04igt/gem_busy: Remove repeated use of igt_spin_batch_newChris Wilson
igt_spin_batch_new() includes a throttling check that GEM works, which breaks trying to create multiple spin batches, use __igt_spin_batch_new() instead, after verifying GEM works. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-01-04igt/kms_flip: Do igt_require_gem() just onceChris Wilson
Since igt_spin_batch_new() will do a stalling GEM check, it is not advisable to use it within loops. Perform the igt_require_gem() upfront and then use __igt_spin_batch_new() inside the test loop. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-01-03kms_atomic_transition: Remove skip_on_unsupported_nonblocking_modeset.Maarten Lankhorst
This weas a workaround to gracefully skip on i915 before nonblocking modeset support was added, but this is no longer needed. Remove the code, since it's safe to always assume such support is enabled. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104471 Reported-by: Marta Lofstedt <marta.lofstedt@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2018-01-02tests/kms_cursor_legacy: Rework the 2x-*-vs-cursor-* tests.Maarten Lankhorst
Using the fancy new DRM_CAP_CRTC_IN_VBLANK_EVENT cap I can finally make this test the work I originally intended to. For the !modeset case that means performing a pageflip on both crtc's, then requeueing as soon as the event is delivered and then check the vblank counter against the original value, it should be advanced by 1. The modeset case is slightly more complicated, ideally it's handled the same, but if we can't perform a modeset and pageflip at the same time, fall back to queueing both in a single commit, in which case we can say nothing about the vblank counter. There is a small race between flip_done and hw_done, so make flip_nonblocking retry for a second when encountering -EBUSY. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101634 Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2018-01-02tests/kms_cursor_legacy: Perform lazy cleanup between testsMaarten Lankhorst
Instead of assuming each subtest cleans up after itself, assume it fails and doesn't. Now that igt_kms can clean up stale events, we can just force each subtest to only clean up its framebuffers, which isn't harmful if it failed. The nonblocking modeset test is removed, this was a workaround only needed for intel because it supported nonblocking commit only for the !modeset case, this has been fixed. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-12-22igt/gem_exec_await: Flush the WCB before attempting to queue more workChris Wilson
Ensure that the terminating write into WC-memory is flushed before we might trigger a wait for ring space. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-12-22tests/perf_pmu: Simplify interrupt testingTvrtko Ursulin
Rather than calibrate and emit nop batches, use a manually signalled chain of spinners to generate the desired interrupts. v2: Two flavours of interrupt generation. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-12-22igt/perf_pmu: Speed up frequency measurementChris Wilson
Use the normal batch_duration_ns and display the sampled frequency: Frequency: min=100, max=750, boost=750 MHz Min frequency: requested 100.0, actual 100.0 Max frequency: requested 755.6, actual 755.6 v2: Remove the early spin_batch_end and assert the measured frequencies are within tolerance of our target. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-12-22igt/perf_pmu: Measure the reference batch for all-busy-check-allChris Wilson
Don't rely on the timer being precise when we can sleep for a known duration. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-12-22igt/perf_pmu: Measure the reference batch for busy-check-allChris Wilson
Don't rely on the timer being precise when we can sleep for a known duration. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-12-22igt/perf_pmu: Tighten measurements for most-busyChris Wilson
Create all the spinners before starting the sampler and then measure how long we sleep. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104160 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-12-22igt/perf_pmu: Tighten busy measurementChris Wilson
Sleep for a known duration. In particular, CI once saw a measurement for busyness greater than the intended batch_duration! v2: Go back to starting pmu sampling outside of spinner; the GPU should be idle. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104241 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2017-12-21meson: Install .testlist files and README from tests/intel-ciPetri Latvala
v2: README too, and a better variable name (Ville) Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-12-21meson: Also install gem_stress.Petri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2017-12-21meson: Install test-list.txt to libexecdirPetri Latvala
Piglit needs test-list.txt to be in the same directory as the test binaries. The corresponding change to autotools was done in commit commit 23b7c99c8f6b2da9f624d4f0c40fe1355d5a2dcc Author: Petri Latvala <petri.latvala@intel.com> Date: Fri Aug 25 13:13:51 2017 +0300 tests/Makefile.am: Install test-list*.txt to libexecdir Piglit expects test-list*.txt files to be in the same directory as the test binaries. Installing non-executable files to libexecdir requires going around some of autotools' sanity checks. Same reasoning for the install directory applies. v2: Expand commit message to explain the reason. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> #v1
2017-12-20igt/kms_frontbuffer_tracking: Make assert(false) more informativeChris Wilson
When reading CI failure reports seeing an "assertion false failed" is confusing as you then have to look for the preceding explanation. Show the actual condition that fails in the assert report. Note that this gives the system a chance at a reprieve and avoids conflicting information such as: (kms_frontbuffer_tracking:1649) DEBUG: Test requirement passed: !fbc_not_enough_stolen() (kms_frontbuffer_tracking:1649) DEBUG: Test requirement passed: !fbc_stride_not_supported() (kms_frontbuffer_tracking:1649) INFO: FBC status: FBC disabled: FBC enabled (active or scheduled) (kms_frontbuffer_tracking:1649) CRITICAL: Test assertion failure function do_status_assertions, file kms_frontbuffer_tracking.c:1714: (kms_frontbuffer_tracking:1649) CRITICAL: Failed assertion: false (kms_frontbuffer_tracking:1649) CRITICAL: FBC disabled Where the fbc status tells us that it was indeed enabled, but the assertion still failed. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
2017-12-20igt/pm_rps: Always allocate spin[0]Chris Wilson
Avoid having to test for spin[0] existing by starting the load-loop with it allocated. v2: Preallocate the spin[1] as well for high load. References: https://bugs.freedesktop.org/show_bug.cgi?id=104060 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104318 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
2017-12-19igt/kms_frontbuffer_tracking: Access via GGTT is not guaranteed to be trackedChris Wilson
As the system may use a partial vma for a GGTT mmap, access via the GGTT mmap is not guaranteed to be tracked by FBC's fence. The rule expressed has been that any access to the frontbuffer should be followed by a fb-dirty ioctl, so always apply and expect the driver to ellide no-ops. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-12-19tests/kms_color: Rename pipe tests to standard notationMaarten Lankhorst
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> #irc Acked-by: Acked-by: Marta Lofstedt <marta.lofstedt@intel.com> #irc
2017-12-15tests/kms_frontbuffer_tracking: Correctly handle debugfs errorsMichal Wajdeczko
In commit 3f6ae7b19 ("igt/kms_frontbuffer_tracking: Keep the debugfs dir around") we introduced custom variant of __igt_debugfs_read function that fires assert when debugfs returns an error. Replace that assert with proper error handling to allow use of errors like -ENODEV. v2: allow only -ENODEV (Chris) Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-12-15igt/tools_test: Check the tools exist before executingChris Wilson
As a simple fail-safe against a bad installation, check the tools exist before testing whether they work. v2: Check intel_l3_parity as well v3: Hunt for tools/ Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102935 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com> #v1 Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> #v1
2017-12-15lib: Provide a library function to test nop executionChris Wilson
Sometimes a test wants to verify that an engine, or all of them, are functional by executing a nop batch. Provide a common routine to submit an empty batch then test whether the driver is wedged. Reported-by: Antonio Argenziano <antonio.argenziano@intel.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2017-12-13igt/gem_shrink: Exercise allocations in the middle of execbuf under oom-pressureChris Wilson
Having discovered that we would encounter an indefinite wait in the shrinker within execbuf/request construction, try to exercise that path by emitting lots of execbuf with fences (which require allocation inside request construction) whilst under severe mempressure. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-13test/kms_plane_lowres: Fix display_commit_mode() so it returns the crcArkadiusz Hiler
Compiler complained on crc_lowres and crc_hires2 being uninitialized and indeed, display_commit_mode() seems to have intention of returning the value through the parameter that is only a single pointer. This causes only the local copy of the pointer, the one inside display_commit_mode(), to be overwritten. Let's fix that! Also add missing hires crc comparison (M. Kahola). v2: make display_commit_mode return just the last CRC v3: Don't do memory allocations, it's hard. (Maarten) v4: Use igt_pipe_crc_collect_crc() instead, cleans up crc handling a lot. Cc: Mika Kahola <mika.kahola@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Mika Kahola <mika.kahola@intel.com>
2017-12-12igt/kms_flip: Allow very large bo to fail pageflips with E2BIGChris Wilson
We tried to allow very large buffers (larger than the mappable aperture) to be flippable by allowing them to be bound into the unmappable region. Sadly, not all of our hw is capable of utilising the unmappable region for scanout (and on some older hw, there is only mappable). As such, we have to allow the very large bo to either succeed in being flipped, or fail with the expected E2BIG. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100917 References: 9d5e393da3f5 ("igt/kms_flip: There's no such thing as bo-too-big") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-12igt/kms_rotation_crc: Add horizontal flip subtest.Joseph Garvey
Test that horizontal flip works with supported rotations. Includes a fix for the unrotated fb which was not being positioned correctly with portrait and landscape rectangles. v2:(from Anusha) - Change 180 degree rotation to follow the rest, use igt_swap(), make flip variable a bool. Format the patch correctly (Ville, Petri Latvala) v3: (From Anusha) - Correct the name of subtests in order to avoid duplication of names (Arek) Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Signed-off-by: Joseph Garvey <joseph1.garvey@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2017-12-11igt/kms_vblank: To set a mode requires DRM_MASTERChris Wilson
Fixes: ba86514759c6 ("kms_vblank: Switch from using crtc0 statically to explicitly setting mode.") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104208 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
2017-12-11tests: Use igt_device_set_masterChris Wilson
A few tests only require DRM_MASTER privileges for a subset of gen or tests, and so open the device as normal and conditionally call drmSetMaster. Translate these over to using igt_device_set_master(), which includes a bit more debugging for when it fails. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-11igt/drv_module_reload: Keep injecting load failures until it passesChris Wilson
Keep reloading the module with the next load failure until we run out of injection sites and the module loads successfully. Or it goes boom. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2017-12-10tests/gem_exec_schedule: Add test for resetting preemptive batchAntonio Argenziano
This patch adds a test that will trigger a preemption of a low priority batch by a 'bad' batch buffer which will hang. The test aims at making sure that a hanging high priority batch will not disrupt the submission flow of low priority contexts. -v2: - Rename subtest (Chris) - Use igt_hang_ctx to hang ring (Chris) - Add comment on execution order checks (Chris) -v3: - Use library call to consume hang (Chris) - Use a more explicit name for array size (Chris) Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michal Winiarski <michal.winiarski@intel.com> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
2017-12-10tests/gem_exec_schedule: Add reset on failed preemption test.Antonio Argenziano
This patch adds a test where a low priority batch is going to be declared hung while a preemption is pending. The test wants to verify that a 'hanging' low priority batch will not disrupt the execution of a high priority context and that the driver does due diligence in managing a reset while a preemption is pending. -v2: - Use igt_hang_ctx to hang the engine (Chris) - Enable/Process engine reset using IGT libs (Chris) - Create new subtest_group for the test (Chris) Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michal Winiarski <michal.winiarski@intel.com> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
2017-12-08tests/perf: skip config tests on older kernelsLionel Landwerlin
We mostly run tests on the most recent kernels but those are failing on < 4.14. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-12-08igt/perf: Read RCS0 timestamp directlyChris Wilson
On Haswell, at least, MI_REPORT_PERF_COUNT is not flushed by the PIPECONTROL surrounding the batch. (In theory, before the breadcrumb is updated the CPU's view of memory is coherent with the GPU, i.e. all writes have landed and are visible to userspace. This does not appear to be the case for MI_REPORT_PERF_COUNT.) This makes it an unreliable method for querying the timestamp, so use MI_STORE_REGISTER_MEM instead. Testcase: igt/perf/oa-exponents Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2017-12-08igt/perf: Use igt_sysfs rather than opencodingChris Wilson
As igt_sysfs exists to provide convenience routine for parsing files found in the device's sysfs dir, use it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>