summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2018-03-26tests/perf_pmu: Improve accuracy by waiting on spinner to startTvrtko Ursulin
More than one test assumes that the spinner is running pretty much immediately after we have create or submitted it. In actuality there is a variable delay, especially on execlists platforms, between submission and spin batch starting to run on the hardware. To enable tests which care about this level of timing to account for this, we add a new spin batch constructor which provides an output field which can be polled to determine when the batch actually started running. This is implemented via MI_STOREDW_IMM from the spin batch, writing into memory mapped page shared with userspace. Using this facility from perf_pmu, where applicable, should improve very occasional test fails across the set and platforms. v2: Chris Wilson: * Use caching mapping if available. * Handle old gens better. * Use gem_can_store_dword. * Cache exec obj array in spin_batch_t for easier resubmit. v3: * Forgot I915_EXEC_NO_RELOC. (Chris Wilson) v4: * Mask out all non-engine flags in gem_can_store_dword. * Added some debug logging. v5: * Fix relocs and batch munmap. (Chris) * Added assert idle spinner batch looks as expected. v6: * Skip accuracy tests when !gem_can_store_dword. v7: * Fix batch recursion reloc address. v8: Chris Wilson: * Pull up gem_can_store_dword check before we start submitting. * Build spinner batch in a way we can skip store dword when not needed so we can run on SandyBridge. v9: * Fix wait on spinner. * More tweaks to accuracy test. v10: * Dropped accuracy subtest changes due problems with RT thread and tasklet submission. v11: * Use READ_ONCE. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> # IRC
2018-03-26tests/gem_eio: Speed up test executionTvrtko Ursulin
If we stop relying on regular GPU hangs to be detected, but trigger them manually as soon as we know our batch of interest is actually executing on the GPU, we can dramatically speed up various subtests. This is enabled by the pollable spin batch added in the previous patch. v2: * Test gem_wait after reset/wedge and with reset/wedge after a few predefined intervals since gem_wait invocation. (Chris Wilson) v3: Chris Wilson: * Decrease short test to 1us. * Use POSIX timers instead of signals to avoid interrupting gem_wait. * Improve comment. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Antonio Argenziano <antonio.argenziano@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-23igt/gem_ctx_switch: Measure qlen for timing loopsChris Wilson
Some platforms may execute the heavy workload very slowly, such that using a batch of 1024 takes tens of seconds and immediately overrunning the 5s timeout on a pass. Added up over a few dozen passes, this turns a 120 second test into 10 minutes. Counter this by doing a warmup loop to estimate the appropriate queue len for timing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
2018-03-23intel-ci: Add full-suite test round blacklistPetri Latvala
The list of regular expressions for tests that are not to be run in sharded full test suite rounds, copied from https://intel-gfx-ci.01.org/blacklist.txt Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2018-03-23intel-ci: Document purpose of fast-feedback.testlistPetri Latvala
Original text was written before shard runs existed. Removed the criteria for testlist contents; The list is still strictly controlled, but additions/removals will be considered case-by-case. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2018-03-23intel-ci: Document meta.testlistPetri Latvala
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Marta Lofstedt <marta.lofstedt@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2018-03-22igt/gem_measure_ring_size_inflight: Measure smallest inflight ring sizeAntonio Argenziano
Some tests measure the render's ring size but are actually meant to measure the smallest across all engines. This patch adds measuring the smallest size in gem_measure_ring_size_inflight() given the appropriate parameter. v2: - Only expose high level API. (Chris) v3: - Use ALL_ENGINES macro. Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-22tests/kms_getfb: Add test for getfbDaniel Stone
Add a new test exercising the GetFB API, specifically including its behaviour of always returning new handles even if the client already has a handle to the GEM buffer. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-20igt: Replace 'all-engines' magic numbers with macroAntonio Argenziano
In interfaces where a parameter allow to select an engine, we usually use '-1' or '~0u' to select all engines. This patch replaces magic numbers with a named constant. Suggested-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-20tests/kms_frontbuffer_tracking: Update check for PSR statusPandiyan, Dhinakaran
Kernel does not expose the "Active: " flag in edp_psr_status anymore. So test for "HW Enabled & Active bit: yes", although this isn't completely accurate either for frontbuffer tests. Let's go with this for now until the kernel exposes HW PSR status. Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105519 Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2018-03-19tests/kms_chv_cursor_fail: Handle cleanup better.Maarten Lankhorst
Clean up cursor fb in cleanup_crtc, which means that cursor fb has to be created after prepare_crtc() is called. This will fix a small leak when a subtest fails. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-19tests/kms_chv_cursor_fail: Reorder tests, and use ↵Maarten Lankhorst
igt_display_require_output_on_pipe. This test is purely about the pipe fifo underrun, so not all outputs need to be tested. Reorder the tests to run per pipe first, this will save a modeset for all different sizes when the tests are run per-binary, and another modeset on each subtest when more than 1 output is connected. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-19tests/kms_busy: Convert to using igt_get_single_output_for_pipe, v2.Maarten Lankhorst
Put a single igt_display_require_output_on_pipe in the fixture, so we know we always have an output on the pipe and can always assume it's not NULL. Changes since v1: - Move igt_subtest_group upwards, to prevent a skip when no valid output can be found on pipe A, but can be found on other pipes. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> #v1 Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-19tests/kms_rmfb: Use for_each_pipe_with_single_output.Maarten Lankhorst
A single output on every pipe will do for testing. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-16lib: Add igt_hweight()Ville Syrjälä
Add the binary hamming weight helper to igt_aux.h. v2: Add just the one macro that works for 64 and 32 bits (Chris) Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-15tests/kms_frontbuffer_tracking: Reduce fbc status spam, v2.Maarten Lankhorst
When FBC cannot be enabled in one of the tests, we get a lot of repeated spam at DEBUG level, which overwrites any good debug level data that you can hope to get out of the test. When running at the debug level, output FBC info only if changed from last time, so we don't get the repeated spam. This makes the debug info from CI slightly more useful. Changes since v1: - Clear last_fbc_buf in fbc_wait_until_enabled. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> [mlankhorst: Remove stray from igt_core.c] Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-15tests/kms_plane_scaling: Change minimum fb height for YUV 420 planarVidya Srinivas
When the plane scaling is used with YUV 420 planar formats, the height should be a minimum of 16 scanlines as per BSpec. Minimum of 8 scanlines is for non-YUV 420 planar formats. Patch changes the minimum fb height being used in the test in case of YUV 420 planar (currently done for NV12, as that is the only planar format supported) v2: Addressed review comments from Maarten Signed-off-by: Uma Shankar <uma.shankar@intel.com> Signed-off-by: Vidya Srinivas <vidya.srinivas@intel.com> Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2018-03-14tests/kms_pipe_crc_basic: Remove legacy crc testsMaarten Lankhorst
Commit 8c6b709d96cb9 ("drm/i915: Use new CRC debugfs API") has been in the kernel for more than a year. In commit 6d16875736b9f ("lib/igt_debugfs: Remove support for legacy CRC api.") we've removed support for the legacy CRC testing and we're about to remove the last remnants from the kernel, so it's time to remove the last tests for legacy CRC as well. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-03-14tests/kms_frontbuffer_tracking: Respect mode when collecting CRCs.Maarten Lankhorst
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reported-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> #irc
2018-03-13tests/i915_query: fix expected subslice count on hswLionel Landwerlin
Haswell's configuration are a bit different from the following Gens. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105476 Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Marta Lofstedt <marta.lofstedt@intel.com>
2018-03-13tests/i915_query: split garbage testLionel Landwerlin
Unfortunately I forgot that some of those tests require rcs topology support which we don't have on Sandybridge. This change split the test in 2 (first part available on all platforms, second part only with rcs topology support). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105475 Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-13tests/kms_plane_multiple: Drain pipe before reading CRCMika Kahola
In CI runs we every now and then fail to read correct CRC yielding an error when comparing reference and grabbed CRC's. Let's first fix the test so that we drain the pipe first and then read the correct CRC. While at it, let's simplify the test by combining legacy and atomic tests into a one common function. v2: We don't need to drain pipe when we grab first CRC v3: Nuke legacy commits References: https://bugs.freedesktop.org/show_bug.cgi?id=103166 Signed-off-by: Mika Kahola <mika.kahola@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-12tests/pm_rpm: Don't try to create an X-tiled ARGB8888 framebufferVille Syrjälä
On most platforms ARGB8888 is only supported by the cursor plane, which doesn't support tiled buffers. Hence the kernel is under no obligation to accept the request to create a tiled ARGB888 framebuffer. Apparently we've been letting this slip through so far, but that is about to change. Fortunately the resulting fb was neer actually used (in fact the kernel would have rejected the setplane/atomic ioctl with such a framebuffer). All we're really interested here is the gem BO which we feed to the kernel via the setcursor ioctl after changing the tiling to linear. To avoid changing the test drastically we can simply change the fb to XRGB8888, which combined with X-tiling is supported on all platforms. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-12tests/kms_frontbuffer_tracking: Convert test to use igt_display, v3.Maarten Lankhorst
Straight conversion, no behavioral changes yet. Changes since v1: - Handle 2x outputs correctly. Changes since v2: - Set correct parameters in set_mode_for_params, so atomic commit for 2x outputs doesn't scale. - Fix accidental scaling in set_prim_plane_for_params. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-12tests/kms_panel_fitting: Test cleanups.Maarten Lankhorst
Use igt_display_reset() to reset the state, instead of doing it at the end of each subtest. Also remove the usage of a file, and instead allocate a test pattern like the other tests do. We now also have a way to find out if panel fitting property is supported without performing a kmstest call. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-12tests: add i915 query testsLionel Landwerlin
Add some new tests to cover the i915 query uAPI. The first user of this API is the RCS topology but we expect more to follow. v2: Complete invalid cases (Chris) Some styling (to_user_pointer, etc...) (Chris) New error check, through item.length (Chris) v3: Update for new uAPI iteration (Lionel) v4: Return errno from a single point (Chris) Poising checks (Chris) v5: Add more debug traces (Lionel) Update uAPI (Joonas/Lionel) Make sure Haswell is tested (Lionel) v6: s/query_item/query_items/ (Tvrtko) test that flags fields != 0 fail (Tvrtko) Split kernel writes checks out (Tvrtko) Verify that when an EU is available, so is slice & subslice it belongs to (same with subslice). (Tvrtko) Verify kernel errors out with read only memory (Tvrtko) v7: Add a special Haswell test to verify correct values (Tvrtko) Simplify igt_require() in front of tests (Tvrtko) v8: Reuse the GT field from device info to verify slice/subslices numbers on wider number of platforms (Lionel) v9: Fix invalid number of subslices on GT4 (Lionel) Update comments style (Tvrtko) Test invalid query pointer (Tvrtko) Check topology item minimum length (Tvrtko) Test invalid item data pointers (Tvrtko) Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-03-12tests/kms_chamelium: Make tests run without pipe color management support.Maarten Lankhorst
Only try to set those values if the properties are supported. This fixes the kms_chameium tests to run on vc4 again. Reported-by: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Cc: Eric Anholt <eric@anholt.net> Cc: Boris Brezillon <boris.brezillon@bootlin.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
2018-03-12meson: Set up runpath for installed executablesPetri Latvala
Meson builds libigt as a shared library, and executables naturally have to find it at runtime. Using default options puts the library to a normal search paths, but any modifications to the directory options or a non-conventional prefix setting makes using LD_LIBRARY_PATH or other library search means mandatory. Add a build option 'use_rpath' (default: false) that makes meson set up DT_RUNPATH at install time, pointing to the library with a path relative to the executable, using $ORIGIN. That way the installed executables find the library even when not installed to exactly the build-time configured prefix path, a setup CI occasionally uses. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Tested-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-12tests/perf_pmu: Use absolute tolerance in accuracy testsTvrtko Ursulin
We need to use absolute tolerance when asserting on percentages. Relative tolerance in this case is unfair and inaccurate since it's strictness varies with relative target busyness. v2: * Do not include spin batch edit and submit into measured time. * Open PMU before child is in test PWM phase. * No need to emit test PWM for twice as long with the new explicit synchroniazation via pipe. * Log test duration in ms for better readability. * Drop inverse assert. (Chris Wilson) v3: Explain tasklet delay. (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>
2018-03-12tests/gem_fd_exhaustion: Fix build failureMaarten Lankhorst
This breaks igt build really badly. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Karol Krol <karol.krol@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-03-09igt/gem_fd_exhaustion: Modify fs.nr_open for duration of the testKarol Krol
We also need to adjust fs.nr_open to allow setting rlimit equal to fs.file-max. Otherwise we're getting EPREM on setrlimit(). Signed-off-by: Karol Krol <karol.krol@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-09igt/gem_fd_exhaustion: Actually test error handling on fd exhaustionKarol Krol
Long time ago, there was an issue with driver crashing due to lack of error handling on struct file creation (gem_create()). We're unable to hit this scenario, because dup() does not create filp. Let's replace dup() with open() and assert that error is returned on exhaustion. v2: Pass if gem_create fails on exhaustion, no matter the errno. Signed-off-by: Karol Krol <karol.krol@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-09tests/meson: Build gem_ctx_isolationArkadiusz Hiler
It was left out. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-03-08igt/drv_hangman: Check that the error state does hold the expected stateChris Wilson
Actually check the error state exists (!"No error state captured") and that it contains the expected engine dump. v2: Throw in some debug clues. v3: Fail if the file doesn't exist, or empty. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
2018-03-07tests/pm_sseu: adapt debugfs parsing for newer kernelsLionel Landwerlin
We introduced a subslice mask storage per slice in newer kernels (because of the possibility of asymmetry). As a result the debugfs output has changed a bit. v2: Add a comment on why we have a special case on subslice per slice Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-07Bump measure_ring_size() timer intervalChris Wilson
It appears that waiting for a 100us period whereby we are unable to submit another batch and proclaim the ring full, may have the false positive where the scheduler intervenes and we are signalled twice before having slept on ring space. Increasing the interval reduces the likelihood of the scheduler stealing the cpu from us, but does not eliminate it. Fortuitously it appears to be a rare false positive. For the library routine, we can fork a RT process but that seems a bit overkill! References: https://bugs.freedesktop.org/show_bug.cgi?id=105343 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>
2018-03-06igt: Remove gen7_forcewake_mtChris Wilson
Having demonstrated that FORCEWAKE_MT is suspect to the same old concurrent mmio access bug that stalks gen7, we have shown that it is not viable for userspace to poke around inside FORCEWAKE_MT directly. As it can not work correctly, remove the test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
2018-03-06igt/gen7_forcewake_mt: Mark the mmio register as volatileChris Wilson
Prevent the compiler from caching reads/writes to the hw register as we do want to perform mmio. Whilst fixing up the mmio access, also ensure that we do not leave the test with any other bits still set in the forcewake register to prevent affecting other tests, as spotted by Tvrtko. v2: Use intel_mmio_use_pci_bar() rather open code the ioremap v3: Flip igt_wait() checking as it returns true on success, not errno. v4: Hohum, the mmio bug affects FORCEWAKE_MT as well. 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>
2018-03-05igt/gem_spin_batch: Avoid waiting when running concurrentlyChris Wilson
If we do a global wait while trying to execute spinners in parallel, it ends badly with a GPU hang. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104352 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-05tests/perf_pmu: Handle CPU hotplug failures betterChris Wilson
CPU hotplug, especially CPU0, can be flaky on commodity hardware. To improve test reliability and reponse times when testing larger runs we need to handle those cases better. Handle failures to off-line a CPU by immediately skipping the test, and failures to on-line a CPU by immediately rebooting the machine. This patch includes igt_sysrq_reboot implementation from Chris Wilson. v2: Halt by default, reboot if env variable IGT_REBOOT_ON_FATAL_ERROR is set. (Petri Latvala) v3: Add missign docs and update stale comment. (Petri Latvala) v4: Use pause instead of sleep. (Chris Wilson) v5: Newlines! (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-03-05tests/perf_pmu: Test busyness reporting in face of GPU hangsTvrtko Ursulin
Verify that the reported busyness is in line with what would we expect from a batch which causes a hang and gets kicked out from the engine. v2: Change to explicit igt_force_gpu_reset instead of guessing when a spin batch will hang. (Chris Wilson) v3: Assert and comment test expectations. (Chris Wilson) Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-03-02igt/gem_ctx_switch: Exercise all engines at onceChris Wilson
Just a small variant to apply a continuous context-switch load to all engines. v2: Adapt to for_each_physical_engine() and sane gem_context_create() 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>
2018-03-01tests/testdisplay: Explicitly use GLIB_CFLAGSThierry Reding
testdisplay.h includes the glib.h header file but the Makefile does not explicitly pass a -I option with the path containing that header, hence causing the build to fail. Note that this doesn't seem to happen with a recent enough version of cairo, which implicitly provides the correct -I option. Signed-off-by: Thierry Reding <treding@nvidia.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2018-03-01igt/gem_exec_capture: Exercise readback of userptrChris Wilson
EXEC_OBJECT_CAPTURE extends the type of buffers we may read during error capture. Previously we knew that we would only see batch buffers (which limited the objects to being from gem_create()), but now we need to check that any buffer the user can create can be read. The first alternate buffer type is a userptr. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
2018-03-01tests/perf: simplify buffer-fill subtestLionel Landwerlin
Much like the enable-disable subtest, we're printing a bunch of values that were meant to try to figure out the issue of the OA unit not producing reports. After fixing the i915 driver with : https://patchwork.freedesktop.org/series/39112/ We don't need those values anymore. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2018-03-01tests/perf: simplify enable-disable subtestLionel Landwerlin
We're printing a bunch of values that were meant to try to figure out the issue of the OA unit not producing reports. After fixing the i915 driver with : https://patchwork.freedesktop.org/series/39112/ We don't need those values anymore. It turns out the issue was simply a race condition in the driver. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com>
2018-03-01lib: Provide an accelerated routine for readback from WCChris Wilson
Reading from WC is awfully slow as each access is uncached and so performed synchronously, stalling for the memory load. x86 did introduce some new instructions in SSE 4.1 to provide a small internal buffer to accelerate reading back a cacheline at a time from uncached memory, for this purpose. v2: Don't be lazy and handle misalignment. v3: Switch out of sse41 before emitting the generic memcpy routine v4: Replace opencoded memcpy_from_wc v5: Always flush the internal buffer before use (Eric) v6: Assume bulk moves, so check for dst alignment. v7: Use _mm_fence for _buitlin_ia32_mfence for consistency, remove superfluous defines (Ville) Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Eric Anholt <eric@anholt.net> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2018-03-01lib/dummyload: Avoid assertions in lowlevel spin constructorChris Wilson
__igt_spin_batch_new() may be used inside a background helper which is competing against the GPU being reset. As such, we cannot even assert that the spin->handle is busy immediately after submission as it may have already been reset by another client writing to i915_wedged. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
2018-02-28tests/perf: Fix build warningTvrtko Ursulin
Move variable declaration to top of scope to avoid C90 build warning. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
2018-02-28tests/kms_frontbuffer_tracking: Fix build warningTvrtko Ursulin
Mark drrs_set as static to avoid a build warning. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>