summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2019-03-28tests/kms_lease: Check crtc used in atomic ioctlDaniel Vetter
We not only need to check that userspace is allowed to use the objects it's changing, but also the objects it's using as property values. The only ones relevant for leases are the CRTC_ID properties on connectors and planes. Current kernels fail this. Cc: Keith Packard <keithp@keithp.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-03-28tests/kms_lease: Handle new errno from idr/xa double insertDaniel Vetter
The conversion from idr to xarray will change the errno for already inserted object ids from ENOSPC to EBUSY. Allow both. Cc: Matthew Wilcox <willy@infradead.org> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-03-28tests/kms_lease: Adjust to kernel errno changesDaniel Vetter
I dropped a superfluous check for negative object id (the kernel did a cast to s32, despite that object ids are always unsigned). Which changes the errno from EINVAL to ENOENT. Allow both. Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-03-28tests/kms_lease: test implicit cursor plane usageDaniel Vetter
Figured I'll only test the SetCursor interface since in the kernel it's all the same anyway, it's just libdrm that splits it up. Current kernels fail this. Cc: Keith Packard <keithp@keithp.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-03-28tests/kms_lease: test implicit primary plane usage in setcrtc ioctlDaniel Vetter
Again we need to make sure that a lease can't use planes it's not allowed to through legacy ioctls. SetCrtc is a bit more tricky, since we should still allow to shut down a CRTC, e.g. when we're allowed to use other planes on that CRTC. Current kernels fail this. Cc: Keith Packard <keithp@keithp.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-03-28tests/kms_lease: test implicit primary plane usage in page_flip ioctlDaniel Vetter
We need to make sure that legacy ioctls don't operate on a lease if the lesse doesn't have access to the implicitly used primary plane. Current kernels fail this. Cc: Keith Packard <keithp@keithp.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-03-28gem_exec_latency: Initialize variance to zeroPetri Latvala
It's just added to in a loop later without any initialization or direct assignment. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-27i915/gem_exec_big: 128MiB not enough slack? Let out the rope!Chris Wilson
Even with 128MiB reserved for other use, a single pass of gem_exec_big runs out of memory. Give in and halve our batch size, that has to be enough slack! As to why it keeps on failing, is left as an exercise to the reader -- we have to solve the mm/ mystery one day, as eventually it will be our only remaining source of bugs! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
2019-03-26tests/kms_chamelium: fix typo in check_analog_bridgeSimon Ser
This function checks whether a port is an analog bridge. Analog bridges provide their own EDID thus the vendor should be different from "IGT". There was a typo that made the function always return true for VGA ports. The condition was essentially: thing != 'I' || thing != 'T' which is always true. Apparently this didn't cause any harm, but it's probably better to fix it anyway in case some tests were skipped and shouldn't. Signed-off-by: Simon Ser <simon.ser@intel.com> Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
2019-03-26i915/gem_sync: Make switch-default asymmetricChris Wilson
To make the demonstration of the cheeky preemption more impactful, make the second context a nop to contrast the first being 1024 MI_STORE_DWORD_IMM. Then if we execute and wait on the second context before executing the first, the client latency is even more drastically reduced. To more clearly show any effect on wait reordering, measure the alternative path and present both. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-26i915/gem_ctx_param: Remove kneecappingChris Wilson
The invalid set/get tests do not serve the purpose of detecting whether or not invalid parameters are indeed detected correctly -- simply because the kernel is the arbiter of what is invalid and this test second guesses that and is wrong. The intent of this test was to ensure that we didn't include any holes in the parameter space that may have been used for nefarious undisclosed purposes, i.e. the maintainer's job backed up by reviewers. As proving no holes is impossible without fuzzing/exhaustive search and a whitelist, accept defeat and just check whether the very last parameter (which should be unused for a long, long time) is invalid. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-26i915/gem_exec_big: Add a single shot testChris Wilson
CI complains that the exhaustive test of trying every size up to the limit is too slow, so add a simple test that tries to submit one extreme batch buffer and check all the relocations land. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105555 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-26kms_fence_pin_leak: Ask for the GPU before useChris Wilson
Check that the GPU even exists before submitting a batch. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109589 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-26i915/gem_exec_nop: poll-sequential requires ordering between ringsChris Wilson
In order to correctly serialise the order of execution between rings, we need to flag the scratch address as being written. Make it so. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-26i915/gem_exec_whisper: Measure total power consumedChris Wilson
Show the total power consumed across all the whispers. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-26i915/gem_exec_schedule: Measure semaphore power consumptionChris Wilson
How much energy does spinning on a semaphore consume relative to plain old spinning? Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2019-03-25tests/kms_dp_dsc: Disable DSC even if enabling failedDhinakaran Pandiyan
The test leaves the debugfs flag enabled if the driver failed to enable DSC. And as it turns out, the feature gets enabled only after the test completes and consequently affects PSR2 tests that follow. Let's make sure the test cleans up correctly, even though the DSC test itself needs to be fixed. Also included some formatting fixes within the function. Cc: José Roberto de Souza <jose.souza@intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
2019-03-25i915: Mark up some forgotten set-domainChris Wilson
It is the user's responsibility to manage their domains. In libdrm, when you mmap a pointer, it calls set-domain automatically, but igt requires the caller to manage it explicitly, so do so. The vast majority already do correct manage the domain as they use the pointer into the mmap, just a few have been missed over the years. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-25tests/kms_ccs: Use igt_plane_has_format_mod()Ville Syrjälä
Replace the open coded IN_FORMATS parsing with igt_plane_has_format_mod() now that we have such a thing. v2: Remove all the extra cruft too Deal with data->ccs_modifier Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
2019-03-25tests/testdisplay: fix heap overflowSimon Ser
v2: also simplify the code by using dirname(3). v3: dirname may modify in-place its argument, duplicate the string Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-22tests/kms_cursor_legacy: Fix assertion failure due to vblank mismatchNischala Yelchuri
For the !modeset case, after a pageflip is performed on both crtc's, vblank counter is advanced by 1 when compared to its original value. For the modeset case, when pageflips and modesets are interleaved, vblank counter does not always advance by 1 as nonblocking modeset could fail, in which case we do not need vblank_matches. v2: Remove the assert statement instead of changing the condition Cc: Maarten Lankhorst <maarten.lankhorst@intel.com> Signed-off-by: Nischala Yelchuri <nischala.yelchuri@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105454 Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2019-03-22tests/kms_available_modes_crc limit tested fb formatsJuha-Pekka Heikkila
This test is causing too much useless noise. Limit tested fb formats to DRM_FORMAT_C8 and DRM_FORMAT_XBGR2101010 for now. These two formats are currently not tested otherwise thus they're left here for now. DRM_FORMAT_XBGR2101010 need to be included into IGT supported formats and DRM_FORMAT_C8 test need to be moved elsewhere, maybe into kms_plane. Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2019-03-22tests/kms_plane_scaling: Minimum width and height for planar YUV formats on ↵Mika Kahola
i915 devices Use minimum of 16x16 size for i915 devices only as other HW's may have different limitations. The default is 8x8. Suggested-by: Ville Syrjala <ville.syrjala@linux.intel.com> Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-21i915/gem_mmap_gtt: Check that the initial pagefault is non-blockingChris Wilson
Historically, the GTT pagefault invoked set-domain(GTT) to transparently handle swapin. However, this implied that the GTT faults were synchronous with GPU rendering, which was not the desired ABI, as synchronisation is explicit via calls to GEM_WAIT or GEM_SET_DOMAIN. In MMAP_GTT_VERSION, this accidental ABI is removed and so we test it is gone and does not come back. For completeness, we verify that the other mmap paths didn't block on initial pagefaulting. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2019-03-21tests/kms_plane_scaling: Ensure minimum height and width for planar uyv formatsMika Kahola
Let's ensure that we test with minimum width and height of 16 for all planar uyv formats. References: https://bugs.freedesktop.org/show_bug.cgi?id=110098 Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-20tests/kms_ccs: Test Yf CCS modifier too.Dhinakaran Pandiyan
Extend the test to Yf tiled CCS, no reason not to. v2: Add a comma after the last modifier (Ville) Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-20tests/kms_ccs: Refactor code to add CCS modifiers.Dhinakaran Pandiyan
Currently only Y tiled CCS modifier is tested, rewrite the functions so that we can add support for other CCS modifiers. Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-20i915/gem_shrink: Open the device before using it!Chris Wilson
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110212 Fixes: 8ae86621d6ff ("lib/igt_device: Move intel_get_pci_device under igt_device") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-20i915/gem_mocs_settings/mocs-isolation: Filter out missing ringsChris Wilson
Don't try to evaluate whether reads executed on an absent ring do anything. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2019-03-20lib/igt_device: Move intel_get_pci_device under igt_deviceMichał Winiarski
It allows us to make things a little bit more generic. Also, we now require fd rather than doing guesswork when it comes to pci address. v2: Use readlinkat rather than string concat, move stuff around, provide a version that does not assert. (Chris) v3: Print addr on failure, avoid assignment in conditionals. (Chris) Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-20lib/igt_sysfs: Remove idx from sysfs_openMichał Winiarski
Similar to sysfs_path - more explicit more better. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-20lib: Kill drm_get_card()Michał Winiarski
It's not operating on FD, and we've provided a nice reimplementation that does. Let's use it instead. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-20lib/igt_device: Introduce igt_device_get_card_indexMichał Winiarski
And use it! But let's start small. Rather than going with "and by the way, here's the card index" from igt_sysfs_path, we're making things more explicit. v2: Drop idx comment. (Chris) Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-20tests/i915_pm_rps: Use sysfs helpersMichał Winiarski
Doing this lets us avoid drm_get_card, which we plan to remove eventually. v2: We were extermally unlikely to find rps knobs in current dir. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-20tests/perf: Simplify generic read/write, use sysfs helpersMichał Winiarski
Doing this lets us avoid drm_get_card, which we plan to remove eventually. v2: Don't break the test Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-20tests/gem_exec_blt: Drop benchmark mode, use igt_sysfsMichał Winiarski
The "benchmark" mode is no longer used. While I'm here, let's also move things around and start to use igt_sysfs, rather implementing own set of helpers. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-19tests/i915/gem_mmap_wc: Add invalid params testsAntonio Argenziano
Add some invalid parameters tests for the MMAP IOCTL when the MMAP_WC flag is supplied. v2: - Expand test space. (Chris) Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-19tests/i915/gem_mmap: Add invalid parameters testsChris Wilson
Add a couple of tests that supply invalid parameters to the mmap IOCTL. v2: - Expand test space. (Chris) Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-19tests/i915/gem_mmap_gtt: Add invalid parameters testAntonio Argenziano
Add a test for an invalid handle being passed to the IOCTL. v2: - Expand test space. (Chris) Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-19i915/gem_mocs_settings: Add mocs table for icelakeKumar Valsan, Prathap
This patch adds mocs table for icelake with expected L3 and eDRAM control values. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109287 Signed-off-by: Kumar Valsan, Prathap <prathap.kumar.valsan@intel.com> Reviewed-by: Lukasz Kalamarz <lukasz.kalamarz@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-19tests/sw_sync: Accept bytes transferred between sendmsg/recvmsgChris Wilson
sendmsg/recvmsg return the number of bytes transferred, not just an error code. Fixes: 520b6f7fbb6c ("sw_sync: Wait until the end") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110150 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-03-19tests/kms_plane: Use just one valid outputArkadiusz Hiler
Since those are just pipe CRC tests output does not really matter. Instead of running the test number-of-connected-outputs times per pipe, let's run them just once. Cc: Martin Peres <martin.peres@free.fr> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2019-03-19tests/kms_plane: Print count of mismatched colorsArkadiusz Hiler
Currently we are printing one igt_warn for each CRC mismatch, which gets quite overwhelming with having to see the same error 8 times for each color tested: WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 WARNING: CRC mismatch with format NV12 (0x3231564e) on A.3 Since the most interesting information here is which format on which pipe/plane is broken we can skip igt_warn just once. For those weirder and rarer case where just certain colors would fail we still provide the count and the mask of color array indices that failed: WARNING: CRC mismatches with format NV12 (0x3231564e) on A.3 with 8/8 solid colors tested (0xFF) v2 (Petri): Print a mask so it's possible to know which colors failed. Cc: Martin Peres <martin.peres@linux.intel.com> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com> Signed-off-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
2019-03-15sw_sync: Wait until the endChris Wilson
If we allow a fork-helper to exit normally before the parent tries to reap the helper (fork-helpers are intended to be only used for persistent background loads), then the helper unhelpful aborts because the child exited cleanly. Simplify by not using the so called helpers at all. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108889 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-03-15i915/gem_tiled_w[bc]: Tighten computation of upper boundChris Wilson
Fix the off-by-one in computing the last page that caused us to try and mmap the page beyond the end of the object. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2019-03-14i915/gem_create: Always try to create an object of at least one pageChris Wilson
0-byte objects are not allowed. References: https://bugs.freedesktop.org/show_bug.cgi?id=110106 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2019-03-14tests/kms_plane: Set output to PIPE_NONE at end of test_format_planeNicholas Kazlauskas
AMDGPU rejects commits that have an active CRTC without an active primary plane. The pixel-format-pipe-* tests fail on AMDGPU during the cleanup at the end of the test due to the final commit disabling all the planes but not the CRTC. Disable the CRTC when cleaning up by setting the output to PIPE_NONE. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2019-03-13lib/igt_fb: better format printingDaniel Vetter
Steal if from kms_plane.c and put it into igt_fb.h Also tiny bikeshed to remove the space, so it fits more tidily into the usual name1=value1, name2=value2 style printing. v2: Rebase v3: It better compile :-/ Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> (v1) Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2019-03-13tests/kms_plane: Reduce execution time by reducing source size and ↵Maarten Lankhorst
performing upscaling. Execution time is way too high because of all the various conversion routines and inefficient accesses done by pixman on uncached memory. Fix it by reducing the source fb siaze, and using scaling to increase to span the entire crtc. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> [mlankhorst: Set src w/h to upscaled fb w/h to remove a magic constant.] Reviewed-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
2019-03-13kms_atomic: Add subtest for testing zpos plane propertyTomeu Vizoso
We use a 16-bit pixel buffer format for the overlay plane, as some older HW might not be capable of driving a 32-bit pixel format. Changes since v2: - use 0 for igt_paint_color_alpha() alpha parameter, as ARGB1555 uses just 1 bit for (of) alpha (Philipp Zabel) Changes since v1: - fix 'commitintg' with 'committing' (Philipp Zabel) - replace RGB565 with ARGB1555 (Philipp Zabel) - test plane if it supports the pixel format supplied (Philipp Zabel) Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>