Age | Commit message (Collapse) | Author |
|
The i915 specific feature requirements that would have failed subtests
from kms_plane, kms_plane_multiple and kms_plane_scaling have been
conditionally guarded against. These tests can now be run on AMDGPU
with the i915 specific tests skipped appropriately.
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
|
|
The kms_plane_lowres subtests will fail on non-i915 hardware because
of the devid lookups and tiling format requirements.
This patch makes use of the igt_display_has_format_mod() helper to
check for support before failing fb creation.
The tests still won't fully run yet on i915 hardware because they'll
skip during calls to igt_assert_plane_visible - those require an i915
extension to get the CRTC/plane set for a given pipe.
v2: Use igt_display_has_format_mod helper (Ville)
v3: Move variable declarations to loop scope (Ville)
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
The per-pipe plane position subtests are capable of running on
AMDGPU as long as they're not using i915 specific tiling formats.
The test setup already supports being invoked with different tiling
modes so this patch introduces the new 'tiled-none' subtest that runs
without any tiling.
The tiled-none tests are skipped on i915 to retain existing test
coverage and behavior on i915.
v2: Use igt_display_has_format_mod helpers (Ville)
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
The plane_scaling subtests are capable of running on AMDGPU when
not using i915 specific tiling formats and when the test only requires
one scaler per pipe.
This patch removes the forced i915 devid and gen checks from non i915
devices. It also adds logic for getting the number of scalers per pipe
in a way that doesn't only depend on devid. One scaler per pipe is
assumed for AMDGPU.
There isn't any specific reason that the x-tiled formats need to be
used on the non-rotation tests on i915 but this patch keeps the
existing test behavior. It's a little simpler to keep it this way for
the prepare_crtc helper that's shared between the scaling test
and the clipping/clamping test.
v2: Use igt_plane_has_format_mod helper (Ville)
v3: Use helpers to check x-tiled support (Ville)
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Ensure that the hangcheck notices the hanging batch by using a
non-preemptible spin batch, as some future versions of hangcheck may
allow a preemptible GPU hog to survive.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
This adds a new block size argument to the pattern generation helpers so
that different sizes of blocks can be used.
In the future, this allows us to use different block sizes when testing
overlay planes, making it visually explicit what is part of the main
plane and what is part of the overlay plane.
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
|
|
In order to reuse the pattern generation helper for overlay planes,
let's provide the pattern generation helper with the explicit dimensions
instead of the mode (that only applies to the primary plane).
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
|
|
Using the width from the selected mode is not sufficient to correctly
paint a pattern on the framebuffer memory: the stride also has to be
taken in account for proper line start alignment.
Pass the stride and use it in chamelium_paint_xr24_pattern.
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
|
The xr24 pattern for chamelium testing appears mangled when checking it
on an actual display. This is because the horizontal and vertical
display sizes are inverted when used as width and height.
Put them back in order.
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
|
amdgpu has started to report out of space after creating a few contexts.
This is not the scope of this test as here we are just verifying that
fences created in amd can be imported and used for synchronisation by
i915 and for that we just need at least one context created!
References: https://bugs.freedesktop.org/show_bug.cgi?id=109049
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
|
|
assertions, v2.
Typically PSR enables in around 136 ms, but on some tests the we have
to explicitly make sure that the gpu is idle before rendering.
Otherwise, sometimes we wait for the background flusher to finish,
which will take at least a second longer, and causes the wait for
PSR to timeout.
On kms_frontbuffer_tracking:
Starting subtest: psr-2p-scndscrn-shrfb-plflip-blt
psr_active(debugfs_fd, true) took 136ms
psr_active(debugfs_fd, true) took 136ms
psr_active(debugfs_fd, true) took 350ms
psr_active(debugfs_fd, true) took 136ms
psr_active(debugfs_fd, true) took 1598ms
Changes since v1:
- Do not call gem_quiescent_gpu on modesetfrombusy subtest, or we get
a timeout.
Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Cc: José Roberto de Souza <jose.souza@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108733
Suggested-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> #v1
|
|
Those 2 tests fail regularly on HSW, probably because the OA period
aligns slightly differently there because of the differnce in the
timestamp frequency between HSW and other generation. Just bump the
max number by 1 to fix the issue.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=102252
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
|
|
Otherwise we are getting EINVAL as drm requires it
at some point.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108642
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
More testing, automatically when using the high-level kms helpers!
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
To try and help debug situations where the driver has leaked a runtime
reference before executing the pm_rpm tests, show the contents of
i915_runtime_pm_status at startup, which will include all currently held
wakerefs.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
If KMS is not available, we cannot simply turn on an output and expect
that to wake the device up. As such we have to ignore that part of the
basic subtest and simply proclaim victory if the device is able to
sleep!
v2: Mention that we can test wakeup via nop execbuf in future.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
|
|
My gcc is unhappy otherwise:
[191/829] Compiling C object 'tests/te...otation_crc@exe/kms_rotation_crc.c.o'.
../tests/kms_rotation_crc.c: In function ‘test_multi_plane_rotation’:
../tests/kms_rotation_crc.c:497:2: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
const static struct {
^~~~~
../tests/kms_rotation_crc.c:524:2: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration]
const static uint32_t formatlist[] = {DRM_FORMAT_RGB565,
^~~~~
Fixes
commit 14c1b132c8f829637c55fb071a9a2e5ce00e7ed8
Author: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Date: Fri Nov 30 15:34:36 2018 +0200
tests/kms_rotation_crc: Add multi plane tests
v2: Trim extra space while at it (Petri).
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Add three new tests which try primary and sprite planes
next to each other with different plane formats, rotations
and tiling modes.
multiplane-rotation subtest run test through with both planes
fully visible.
multiplane-rotation-cropping-top will crop primary plane to
left/top corner and sprite plane to right/top corner while running
rotation tests.
multiplane-rotation-cropping-bottom will crop primary plane to
left/bottom corner and sprite plane to right/bottom corner while
running rotation tests.
v2 (Nautiyal, Ankit K): Use rectangular figures instead of
square figures and fix associated code to perform correctly.
Adjust plane positions according to screen size to avoid
putting planes outside screen.
v3 (Nautiyal, Ankit K): Minor detail fix.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
|
|
Add test which create fb bigger than plane and clamp fb
from all sides.
v2 (Maarten Lankhorst): Fix typo, create different color
border around clamped fb where during test border should
stay outside visible area.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
The connector and EDID blob retrieved when checking for analog bridges
need to be freed before returning from the associated function.
Fixes: f8d6afa67 ("tests/chamelium: Detect analog bridges and handle EDID accordingly")
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
|
|
These are basic non-rendering tests of the UABI.
Signed-off-by: Eric Anholt <eric@anholt.net>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
It's not cool to run an ioctl outside of igt_fixture.
Reported-by: Petri Latvala <petri.latvala@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Remaining tests that have been overlooked and don't need any
invasive changes to limit the skipping to only the relevant parts.
v2: [A rebase gone wrong]
v3: Move the misplaced hunk to the right patch (Antonio).
v4: Rebase, kms_content_protection is new.
v5: Rebase - need to adjust kms_lease.c too.
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> (v3)
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Acked-By: Antonio Argenziano <antonio.argenziano@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Need to extract into a test subgroup to make sure we only skip the
tests that need display support.
v2: Chris pointed out that "read-all-entries" was the original non-kms
tests, and we don't want to skip that if there's no output. Make a
seperate test for this.
Also, that kind of where libraries magically second-guess what the
test might have wanted when it supplies an invalid request is exactly
why I want to fix the igt_display_init API regression.
v3: Actually squash in the hunk that was supposed to do v2 into this
patch (Antonio).
Cc: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Acked-By: Antonio Argenziano <antonio.argenziano@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Some tests assume that close on an unopened fd is fine, except it's
not just unopened but actually stack garbage. There's a good chance we
end up running close(0), which wreaks the testcase enumeration. Fix
this.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Not sure there's a better way to catch this than git grep plus lots of
manual auditing ... The unit tests only catch it by accident (x86
works fine, I hit it in one testcase only cross-building to aarch64).
v2: Note that gem_pread_after_blit uses heap memory, so is actually
guaranteed to run close(0). Noticed by Jani.
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Exercise O(N^2) behaviour in reading the error state, and push it to the
extreme.
Reported-by: Jason Ekstrand <jason@jlekstrand.net>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com>
|
|
I'll need to wrap a bit of magic around all the fork() calls in our
tests. Simplest way to get there is to roll out the existing helpers,
which even saves a bit of boilerplate code.
Cc: Robert Foss <robert.foss@collabora.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
We want to allow bpp = 8 or 16, so make sure we set the bpp
in igt_buf. This way we can extend rendercopy to support
other values for bpp.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
[mlankhorst: Fix double ;; (Ville]
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
It makes the tests more reliable because the expected number of
reports is more acurate (given that we'll have almost no
context-switch reports).
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
|
|
gen8_bind_buf looks at buf->aux.stride/offset, which is not set by the
test. When I added the bpp field, it was enough to make the test fail,
fix this by making sure that the buf is initially zero'd explicitly,
which fixes the test to run reliably 100% of the time.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com> #irc
|
|
long is different between 32 and 64 and should basically never be
used. Fixes compiler warning about passing the wrong type.
v2: Use the PRId64 macros instead of long long.
Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
The drv_ tests are i915 specific, so let's move them to i915 directory
and change the binary prefix to i915_.
Additionally, while we at moving stuff around, let's rename
module_reload to module_load and do the following cleanup with the
subtests:
basic-reload -> reload
basic-no-display -> reload-no-display
basic-reload-inject -> reload-with-fault-injection
Cc: Martin Peres <martin.peres@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Martin Peres <martin.peres@linux.intel.com>
|
|
Make availability of all elements more visible for debug purposes.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
We need to use raw ioctl since using the igt_kms library is fairly
brittle against changes in the library. This fixes the last subtest
failure due to the rebasing onto latest kernel and igt.
Note that the revoke test doesn't have such a problem, because the
igt library has been initialized when everything was still there.
Hence we will never blow up in the library after the revoke happened.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Again it failed to fill in the pad field. It also had the wrong
assumptions about planes being included. Plus again add a bunch more
paranoid checks. And make sure the primary plane is included, too.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
It failed to clear the pad, which made me realize that it's missing
a few paranoid checks.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
We need to also ask for a plane when universal planes is enabled,
which the igt_display library does by default.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Much faster, since when not enabled they proceed right away.
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Validate that the leasing API creates leases that allow access to a
subset of the available resources and that lease revocation works.
v2: from Dave Airlie <airlied@redhat.com>
* Update ioctl numbers to latest proposed values.
* Fix commit message
* Add tests for get_lease and list_lessees
v3:
- Rebase
- drop the get_driving_output test, that's already taken care of by
the for_each_valid_output loop.
Signed-off-by: Keith Packard <keithp@keithp.com> (v2)
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
These ioctls replace drmWaitVBlank and add ns time resolution and
64-bit sequence numbers to comply with the Vulkan API specifications.
The tests were derived from the existing kms_vblank tests with the
'wait' variant elided as the new API doesn't provide a mechanism for
blocking in the kernel.
v2: from Dave Airlie <airlied@redhat.com>
* Add local definitions of new ioctls to avoid requiring latest
libdrm.
* Remove FIRST_PIXEL_OUT as that has been removed from the proposed
kernel patches.
v3:
- Rebase
- drop the export of igt_output_get_driving_pipe, the tests do full
modesets already.
Signed-off-by: Keith Packard <keithp@keithp.com> (v2)
Reviewed-by: Dave Airlie <airlied@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
The previous fixes to kms_frontbuffer_tracking fixed the sharedfb tests,
but the stridechange test still creates its own fb. Use the existing 'big'
fb to force a stride change, without ending up with an excessive stride.
Changes since v1:
- Use the big fb used by the shrfb tests. It already exists and has
the right dimensions, so why not?
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
We mostly care about the plane type, because sometimes the driver may
do silly things when only a cursor is enabled for example, so we reduce
the number of tests. This puts an upper bound on the number of plane
combinations being tested, which is nice for gen11.
Changes since v1:
- Make 2 groups for overlay planes, and randomly put planes in either group.
Changes since v2:
- Include igt_rand.h to compiler error.
Changes since v3:
- Fix logical error resulting in crash.
Changes since v4:
- Fix logical error harder.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> #v3
|
|
../tests/kms_properties.c:113:11: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
Fixes: 7983e19ed62e ("tests/kms_properties: Add functional test for "max bpc" property")
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Also print what directory gets used.
v2: Use PATH_MAX
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Test the values in the range advertised by the "max bpc" property.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
We currently test the existimg properties by setting them with default value.
Add infrastructure to perform additional test on a desired property.
v2: Fix the strcmp logic
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Manually unroll the 32b memset in create_bo() to set a cacheline at a
time, for a 2x speed improve of the whole test.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Michał Winiarski <michal.winiarski@intel.com>
|
|
Older platforms require fence registers to perform blits, and so
userspace is expected to mark up the objects to request fences be
assigned.
Fixes: ff2db94acb53 ("igt/gem_tiled_fence_blits: Remove libdrm_intel dependence")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108591
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Nothing happens if you don't commit ...
v2: rebased!?
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108550
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108549
Cc: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Ramalingam C <ramalingam.c@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|