summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2017-01-26kms_busy: Add extended tests that force a hang.Maarten Lankhorst
The intel driver adds a timeout to each atomic update of 10s for the new fb. Make sure this works as intended, and also test what happens when hanging the old framebuffer, with and without modeset. The driver waits indefinitely on the old framebuffer, but another blocking update will wait at most 10 seconds for it. Abuse this fact in a testcase. For added bonus also add some tests that make sure this works on older gens that perform a display reset during gpu reset. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-26igt/gem_exec_reloc: Pre-emptive defence against gpu relocationsChris Wilson
If we do relocations on the gpu, then we have to wait for the gpu to finish writing to the buffer before the relocations are complete. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-24intel-ci: Add reloading module without any displayChris Wilson
A quick test to exercise one module paramter that should disable a chunk of code usually run at startup and shutdown. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com>
2017-01-23kms_cursor_legacy: Allow for an extra vblank wait in atomic-transitions testsMaarten Lankhorst
This is required for ILK style watermark programming, which currently inserts an extra vblank wait. This allows the tests to pass on those platforms. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-22igt/gem_exec_nop: Watch interprocess switchingChris Wilson
Like a lightweight unchecking gem_exec_whisper, but the simplicity helps looking for driver overhead and stressing the ordering. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-21igt/gem_ringfill: Restore secure dispatch for ctg/ilkChris Wilson
Cantiga, Ironlake had early ppgtt hw and so marked MI_STORE_DATA_IMM as a privileged command, even when ppgtt is not enabled. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-21igt/gem_busy: Start converting over to igt_spin_batchChris Wilson
Easy one first. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-20igt/gem_exec_nop: Watch inter-ring synchronisation overheadChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-19tests/kms_plane_multiple: Cleanup in favor of library functionsMika Kahola
Cleaunup by replacing get_vblank() function with library function kmstest_get_vblank(). Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-19tests/kms_plane_multiple: Relax atomic commit time requirementMika Kahola
Relax required time to atomic commits from 1 vblank to 2 vblanks. v2: Increase MAX_CRCS to 2 (Maarten) Reference: Issues seen on BYT CI tests Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-19igt/gem_ringfill: Restrict BIT(22) to gen2/3 as it changed meaning on gen4+Chris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-18igt/gem_ringfill: Drop SECURE dispatch for gen2/3Chris Wilson
It's not required, and fails completely without the master fd (i.e. on the new newfd tests). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-18intel-ci: Do module reload lastChris Wilson
We want to run the initial set of tests under "pristine startup" conditions - so that our tests see the hardware as close to the condition we normally would after booting. This means that we want to avoid reloading the module until the very last set of tests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com>
2017-01-18igt/gem_ringfill: Fill multiple execlist ringsChris Wilson
On execlists, there is a ring per engine per context. So create a few contexts (fd) and spam them. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-18kms_cursor_legacy: Use cursor movement instead of hiding for 2x testsMaarten Lankhorst
This forces the cursor fastpath to be used. While at it, add -atomic versions of the test to compare legacy pageflip vs atomic. The nonblocking modeset test is changed slightly, due to cdclk changes the page flip may be stalled so it's not useful to test it. Just test that a queued page flip + nonblocking modeset works as intended and there is no kernel spew. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-18igt/drv_module_reload: Exercise disable_display parameterChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-17kms_cursor_legacy: Make the 2x tests slightly more useful.Maarten Lankhorst
Trying to run as many cursor updates during a nonblocking modeset won't work, because both crtc's might be involved in the modeset. Instead try to run as many cursor updates on both crtc's at the same time, while trying to queue page flips in between. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-16kms_cursor_legacy: fallback to xrgb if argb for sprite plane is unavailableMaarten Lankhorst
This fixes the test on older platforms that don't have ARGB support. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-16kms_plane: Use for_each_valid_output_on_pipe.Maarten Lankhorst
This is better because some outputs may not be used on all pipes. This correctly causes some tests to skip on CHV/VLV when there is no output for a given pipe. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-16kms_pipe_b_c_ivb: Use for_each_pipe_with_valid_output.Maarten Lankhorst
This will cause multiple calls to igt_output_set_pipe, but that's harmless. This function should be used since not all outputs may be used on pipe B and C. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-16igt/gem_exec_latency: Measure after forced queuingChris Wilson
Force the first write to be queued and so exercise a different exec path. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-13tests/kms_plane_lowres: Plane visibility after atomic modesetsMika Kahola
Testcase for plane visibility after atomic modesets. The idea of the test is the following: - draw a blue screen with high resolution - enable a yellow plane, visible, in lower-left corner - set a new lower resolution mode (1024x768) that makes plane invisible - check from debugfs 'i915_display_info' that the plane is invisible - switch back to higher resolution mode - check from debugfs 'i915_display_info' that the plane is visible again - repeat number of iterations, default 64 v2: allow test to be run on non-Intel drivers (Daniel) moved test for plane visibility to as helper function (Daniel) moved get_vblank() function to be part of helper functions (Daniel) rename 'tiling' parameter as 'modifier' (Daniel) select a mode from a list so that the plane should be invisible. use default 1024x768 mode only as a fallback if decent mode has not been found (Daniel) add tiling MODE_NONE (Daniel) v3: draw as many overlay planes as the platform supports + cursor plane on top of each other on lower-left corner skip the test if i915_display_info file is not available test plane visibility with igt_assert_plane_visibility() function drop option for multiple test iterations (Daniel Vetter) v4: switch 'for_each_connected_output()' to 'for_each_valid_output_on_pipe()' skip Y and Yf tiling for generations older than 9 (Maarten) Cc: Daniel Stone <daniel@fooishbar.org> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-12kms_universal_plane: Skip tests if there are no valid outputs for the pipeMaarten Lankhorst
The tests shouldn't pass if nothing has been tested. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-12kms_plane_multiple: Use for_each_valid_output_on_pipeMaarten Lankhorst
Not all outputs are valid on all pipes. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-12tests: Add test for tv load detectionMaarten Lankhorst
The test is that kernel load detection works as intended, and doesn't cause any vblank spam. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Tested-by: Lyude <cpaul@redhat.com>
2017-01-12tests/kms_plane_multiple: Change number of iterationsMika Kahola
In CI system, the default 64 iterations of this test may cause CRC overflow warnings in dmesg when debugfs is enabled in kernel config. To keep dmesg warning noise in minimum, let's run this test only once by default. Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com>
2017-01-05kms_frontbuffer_tracking: fix sink CRC detection regressionPetri Latvala
Don't forget to mark the CRC as not supported if there are no eDP panels. Regression introduced by: commit 8aa7ea4f84b0e1384b78f4cc9b136ea5b641055a Author: Paulo Zanoni <paulo.r.zanoni@intel.com> kms_frontbuffer_tracking: refactor sink CRC reliability handling v2 (from Paulo): - Convert Petri's email patch to an actual git patch - Add an extra assertion, just in case - Add Petri's s-o-b tag (authorized via IRC) Signed-off-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2017-01-05kms_pipe_color: Use for_each_valid_output_on_pipe.Maarten Lankhorst
And skip when no valid output is found. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_ccs: Fix testcase.Maarten Lankhorst
Use for_each_pipe_with_valid_output, and iterate correctly over all crtc's. pipe-*-crc-* didn't show up in the test list either because display is not initialized, fix that one too. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_rotation_crc: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. For the record, this test seemed to have bitrotten and doesn't currently pass. This might have happened when fixing atomic commit support, but it definitely needs some love. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_pipe_crc_basic: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_mmio_vs_cs_flip: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_mmap_write_crc: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_flip_event_leak: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_fence_pin_leak: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_fbc_crc: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_cursor_crc: Stop looking at output->validMaarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_chv_cursor_fail: Stop looking at output->valid.Maarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_pwrite_crc: Stop looking at output->valid.Maarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05prime_mmap_kms: Stop looking at output->valid.Maarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05kms_vblank: Stop looking at output->valid.Maarten Lankhorst
Use the proper iterator macros to prevent ever having an invalid config. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2017-01-05tests: Add gem_exec_reuseChris Wilson
Exploratory test into behaviour when reusing bo between batches. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-04igt/gem_mmap_gtt: Tiled access to the incomplete last row is undefinedChris Wilson
Trying to read/write into the last tiled row is invalid since we do not allocate sufficient pages for the writes to map to (hence they get lost). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-04igt/gem_mmap_gtt: Check read/writes across a GPU resetChris Wilson
References: https://bugs.freedesktop.org/show_bug.cgi?id=99274 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-01-04kms_frontbuffer_tracking: fix compression checkingPaulo Zanoni
Ever since Kernel's "drm/i915: don't report compression when fbc is disabled" we've been wrongly assuming that the Kernel doesn't support compression information due to the fact that it doesn't print that specific line when FBC is not active. Fix this by just assuming that the Kernel supports it, allowing us to kill some more code. With this change, running a brand new kms_frontbuffer_tracking on super old Kernels will result in failures, but I suppose that's fine for IGT. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2017-01-04kms_frontbuffer_tracking: destroy all FBs from all formatsPaulo Zanoni
Don't just destroy the ones from the default format. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2017-01-04kms_frontbuffer_tracking: refactor sink CRC reliability handlingPaulo Zanoni
What I'm currently seeing is that sometimes the first check during setup_sink_crc() returns valid sink CRC, but then the subsequent checks return ETIMEDOUT. In these cases, we keep getting flooded by messages saying that our sink CRC is unreliable and that the results differ. This is annoying for the FBC tests where sink CRC is not mandatory. Since this case shows it's useless to try to check for sink CRC reliability before the actual tests, refactor the code in a way that if at any point we detect that sink CRC is unreliable we'll mark it as such and stop flooding the logs. For the tests where it's mandatory we'll still keep the same SKIP behavior. This refactor also allows us to just call get_sink_crc() in the setup_sink_crc() function instead of having to reimplement the same logic. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2017-01-04kms_frontbuffer_tracking: move more code to get_sink_crc()Paulo Zanoni
Make it check for the supported flag and decide what to do. This change will make the next patches much easier, and it's probably better to move more sink CRC logic to the sink CRC function. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2017-01-04kms_frontbuffer_tracking: fix sink CRC assertionPaulo Zanoni
If we already detected an error, don't try to assert the size of what we didn't read. In machines where the sink CRC is unreliable, this was failing tests where the sink CRC is not mandatory (FBC tests). With this change we won't fail anymore, we'll just print error messages saying that the sink CRC is unreliable. Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2017-01-04tests/kms_draw_crc: remove unnecessary mode unset callsPaulo Zanoni
I couldn't think of a reason why we would need to unset the CRTCs before doing the modesets on this test, so remove all the mode unset calls. Before: $ time -p sudo ./kms_draw_crc real 44.74 $ time -p for i in $(sudo ./kms_draw_crc --list-subtests); do sudo ./kms_draw_crc --run-subtest $i; done real 121.61 After: $ time -p sudo ./kms_draw_crc real 7.40 $ time -p for i in $(sudo ./kms_draw_crc --list-subtests); do sudo ./kms_draw_crc --run-subtest $i; done real 14.32 Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>