The tests exercise different combinations of enabling pipe B with modes
that require more than 2 lanes and then enabling pipe C.
v2: Added a couple more tests for different pipe transitions. (Ander)
Use custom modes to make the test reliable. (Daniel)
v3: Add IGT_TEST_DESCRIPTION. (Thomas)
Rename test to kms_pipe_b_c_ivb. (Ander)
v4: Fix subtest enumeration. (Thomas)
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
So that it is possible to use a custom mode with the simplified mode set API.
v2: Add documentation for igt_output_override_mode(). (Thomas)
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Wrap the sysfs_read and sysfs_write calls in an igt_fixture block so
they are not executed during subtest enumeration.
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
igt_fork/igt_waitchildren already perform the magic required to raise
errors based on the exit error code of the child, so take advantage of
that and kill the overlycomplicated message passing!
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This reverts commit a5934091b84e3f8804fb3fed35374c5a976dd07e.
Unnerf igt/gem_exec_lut_handle. Sadly completely breaking the
measurement is not a good excuse to hide regressions.
The idea here is to check what happens when a large process requests
memory from us - we create and utilize a bunch of surfaces then have to
relinquish some but continue using the whole working set (so as to force
reloads).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
By moving the assert up a level, we get an much improved assertion
failure message (e.g. it includes the batch string that fails).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Add rules to fix unused-result warnings when compiling with
_FORTIFY_SOURCE defined and apply them to the library and tests.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Avoid producing long lists of subtests in the documentation and instead
provide instructions on how to obtain the full list.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Include debugging symbols in tests by default to improve stack traces
and also set the compiler optimisation level to improve the debugging
experience.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Add an optional dependency on libunwind to print stack traces when a
test assertion fails.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Apparently nobody else likes testing and debugging GEM coherency issues.
However, this also means that QA is skipping these vital tests. Split
out a set of canaries into igt/gem_concurrent_blit and keep the rest in
igt/gem_concurrent_all.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89497
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We use SIGTERM to kill off child processes. We use it a lot. Reporting
everytime we use it is just spam. Treat the similar user signals
(SIGINT, SIGQUIT and the should-never-have-been SIGPIPE) similarly to
reduce noise.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Thomas Wood <thomas.wood@intel.com>
These two registers contains the 48bit fault address.
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Add decodings for FAULT_REG
v2: fix fault encodings and ignore addr type for gen8+ (Michel)
fix engine mask
Reviewed-by: Michel Thierry <michel.thierry@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
New test pm_sseu is intended for any subtest related to the
slice/subslice/EU power gating feature. The sole initial subtest,
'full-enable', confirms that the slice/subslice/EU state is at
full enablement when the render engine is active. Starting with
Gen9 SKL, the render power gating feature can leave SSEU in a
partially enabled state upon resumption of render work unless
explicit action is taken.
v2: Add test description and apply recommendations of igt.cocci
(Thomas Wood).
v3: Skip instead of fail if debugfs entry i915_sseu_status is not
available.
Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
Tested-by: Lei Liu <lei.a.liu@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
The media spin utility is derived from media fill. The purpose
is to create a simple means to keep the render engine (media
pipeline) busy for a controlled amount of time. It does so by
emitting a batch with a single execution thread that spins in
a tight loop the requested number of times. Each spin increments
a counter whose final 32-bit value is written to the destination
buffer on completion for checking. The implementation supports
Gen8, Gen8lp, and Gen9.
v2: Apply the recommendations of igt.cocci.
Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
Tested-by: Lei Liu <lei.a.liu@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
The gem_tiled_fence_blits test tends to get oom killed
on low memory (< 4GB) Android systems. This is because the
test tries to allocate (sysinfo.totalram * 9 / 10) in
buffer objects and the remaining 10% of memory is not
always enough for the Android system.
As with a similar issue with gem_render_linear_blits,
this problem is resolved by splitting into subtests.
A "basic" subtest uses minimal memory buffers to test
the basic operation, and a "normal" subtest which is
skipped if there is insufficient memory.
I also took the opportunity to cull some numeric literals.
Signed-off-by: Tim Gore <tim.gore@intel.com>
The watermark registers on the gmch platform are a bit of a mess. Add
a tool to make some sense of them. While at it decode the ilk-bdw wm
registers as well. SKL+ is left out for now since it's a very different
beast.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Some IOSF SB units ogranize their registers in a pecualiar way. Even
though the registers are 32 bits wide, the register offsets only
increment by one when going from one register to the next. Correctly
deal with this when dumping several consecutive registers.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Add a command line option '-c <count>' that can be used to read set of
consecutive registers without having to specify the offset for each of
them.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Replace the silly strcasecmp() if ladder with and array that maps the
unit names to port numbers. And keep the thing sorted so we can do
the lookup with bsearch() for extra speed :)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
intel_dpio_{read,write} as redundant as intel_iosf_sb_{read,write}
handle the same task.
The difference between the tools was the opcode used to read/write the
registers, but with DPIO both opcodes work just fine, so there's no need
for both sets of tools.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
The devfn field in the IOSF SB messages is only relevant when there's a
real PCI bus or some other multifunction device behind a single port.
Otherwise the port number itself is enough to uniquely identify the
target. In fact some IOSF SB targets reject the access when devfn is not
0.0 (eg. GPIO_NC on BYT).
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Document a copule of the subtests with their purpose, methods, and
expected results.
Reviewed-by: Ben Widawsky <benjamin.widawsky@intel.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
I've fumbled this, resulting in this this skipping everywhere.
Unfortunately no QA test report for this regression ...
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reduce default number of repeats a lot. High repeat count is only
useful for microbenchmarking, not that much for regression testing.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87131
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
There was some confusion about whether we restore cursors correctly
after dpms and suspend/resume. Apparently we still do!
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
It is theoretically possible to hit these in the wild, so only warn
about them. Dropping the test is probably too much since these caught
some real bugs in the past.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Tests should positively check for crc matches, not for mismatches.
Enforce this by only exposing and igt_assert function for comparing
crcs.
For the few tests which didn't just do this as consistency checks but
to do functional tests add FIXME comments that some reference crc
values are missing.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Because of hash collisions tests should only ever compare crc
checksums for equality. Checking for inequality can result in random
failures.
To ensure this only expose and igt_assert function and use that.
Follow-up patches will rework the code for tests which don't follow
this requirement and try to compare for CRC inequality.
v2: Rebase on top of Matt's kms_plane changes.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Useful for inspecting the screen state in kms tests when they fail.
Also move the screen clearing in kms_cursor_crc to the bottom.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>