Age | Commit message (Collapse) | Author |
|
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>
|
|
Decode the HDMI max data rate from the VBT.
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@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>
|
|
Test the results.json generation with a top-down approach: With a
directory of test run intermediary logs, check that the resulting json
would match a reference json file.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
This allows testing to skip the file writing.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Make the handling of slow gtt mmap reads generic, and extend it to
the pixman converter. Makes the pixman path a bit faster.
With testing just XRGB8888 and XBGR8888 on KBL:
$ time kms_plane --r pixel-format-pipe-A-planes
- real 0m18,757s
+ real 0m2,635s
v2: Use the original src buffer if the malloc fails (Chris)
Drop the duplicated comment about things being slow
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
The converter operates between the linear and shadow fbs. When using
the blitter path there is no particular reason to assume that the
linear fb and actual fb have the same strides for instance. Thus
consulting the actual fb for metadata is not really correct.
We can also simplify the mmap() path by copying all the original
fb metadata into linear.fb as there we map the original fb directly.
We just have to keep clearing linear.fb.gem_handle so that the
dtor knows which kind of beast it's got.
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
|
Add more asserts to make sure the converted formats are
correct.
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
|
Cairo doesn't do RGB888. The shadow buffer must be in XRGB888 (which
is what our YUV converters also assume). We did calculate the shadow
stride/size with four bytes per pixel, but we just put the wrong
format in the fb metadata.
Cc: Maxime Ripard <maxime.ripard@bootlin.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maxime Ripard <maxime.ripard@bootlin.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>
|
|
We had quite a bit of warning flags active on autotools builds that
were not used for meson builds. Add the same flags autotools builds
used to what meson was using (some flags autotools didn't have).
For the assembler, disable some of the flags to make it build cleanly
again.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
This code is supposedly checking of the given register is nr=0 in ARF but
was instead checking twice if the register is anything in ARF.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
const where possible, and cast away const when passing argv to
parse_options, which expects non-const strings, because it passes them
to getopt_long, which expects non-const strings...
getopt and getopt_long take the argv array as char * const *, or in
other words, as pointer-to-const-pointer-to-char. In C, pointer-to-T
implicitly converts to pointer-to-const-T and for a char **, the T is
char* and "const T" is char * const, ergo char ** converts to char *
const *, not const char **. The only const-correctness getopt and
getopt_long can really do is char * const * or they lose the ability
to directly pass in main()'s arguments, which are an array of
non-const pointers to non-const char for legacy reasons.
For testing the argument handling, it's very convenient to use an
array of string literals, which are of type const char[N], convertible
to const char *. To get such an array into getopt, the choices are:
1) Cast away the const in the pointer-to-pointer
2) Cast away the const in the string literal
3) Don't cast anything and eat the compiler warning
Option 1 looked cleanest out of all those.
tl;dr: Choices made in 1972 force our hand.
v2:
- Augment commit message
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Fixes compiler warning: function declaration isn’t a prototype
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
While true that subtest listing doesn't require the i915 driver, same
applies to any driver or platform.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Despite the comment temporary buf is not
used anywhere in convert_nv12_to_rgb24,
so it has to be either removed or used instead
of cvt->src.ptr.
v2: Put it in use instead of removing as other
functions seem to use it.
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.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>
|
|
When running any kind of static analysis on IGT, one tends to drown in
warnings about using uninitialized variables in subtests, because
static analysis is unable to figure out that igt_fixture blocks are
always entered if a subtest block is entered. Aid the discovery of
correct execution flow by making static analysis always enter all
igt_fixture blocks and all subtest blocks.
Automatic discovery of static analyzers is done for Clang, Coverity
and Klocwork, using macros found by quick googling. For explicit
control on possible other analyzers, defining STATIC_ANALYSIS_BUILD=1
manually will activate this hack.
v2:
- Hack not needed for igt_subtest()
- Make sure igt_fixture is entered once instead of an infinite loop
v3:
- Rebase properly...
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
First I tried to build in a full sysroot, but I didn't figure out why
ld never found the libraries (this was on fedora, which might have
been part of the problem - if you just need a toolchain for kernel
corss-building fedora is perfectly fine).
Then I tried using debian's multiarch stuff, which worked a lot
better, except there's some minor gotchas:
- some libraries conflict and can't be multi-arch installed
- some libraries are buggy and cause conflicts when installing
- pkgconfig and ld get confused with some other libraries and pick the
first one they find (i.e. the x86_64 one, not the arm64 one).
That means we need a new docker image with just the cross libaries
installed as -dev packages, and none of the native ones.
Next up I tried to run the tests. Meson has really nice support for an
exe wrapper, and qemu happily runs arm64 on x86_64. With that I
managed to run some tests successfully (it's not even that slow!). But
most are run through a script, and the script doesn't know about the
exe wrapper and hence fails miserably. I discussed this a bit with
Dylan and he filed an upstream meson issue:
https://github.com/mesonbuild/meson/issues/4427#issuecomment-433553689
Another option would be to use binfmt-misc handling (which works
neatly locally), but on the runners we have I can't control that.
Maybe I can beg Daniel Stone ...
For not let's just mark this stage as optional and that failures are
allowed.
v2: Use the new gitlab 1.4 feature to rebuild docker images when
necessary.
Cc: Sean Paul <sean@poorly.run>
Cc: Eric Anholt <eric@anholt.net>
Cc: Dylan Baker <dylan@pnwbakers.com>
Cc: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Eric Anholt <eric@anholt.net> (v1)
Reviewed-by: Petri Latvala <petri.latvala@intel.com> (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
I just realized that when you push to a non-HEAD branch, then gitlab
doesn't bother to build the deploy stage. Which means if you push to a
branch, then that's not properly tested.
So build docs right away. We're not going to waste anything, since the
deploy:pages job will pick up right from where we left.
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
We want to make sure this keeps working nicely
Cc: Sean Paul <sean@poorly.run>
Cc: Eric Anholt <eric@anholt.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Apparently it's really not great to require it for a bunch of
platforms. Requested by Sean and Eric.
v2: Use combo option (Petri).
v3: Fix the right option (Petri)
v4: try a bit harder ...
v5: Even more simplification (Dylan)
Cc: Dylan Baker <dylan@pnwbakers.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net> (v1)
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Cc: Sean Paul <sean@poorly.run>
Cc: Eric Anholt <eric@anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter@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>
|
|
The jobs that build container images and upload them to the registry do
not have to be manual any longer. By leveraging the new only-changes
feature (GitLab 11.4), we can trigger those jobs conditionally on any
alterations to the Dockerfiles.
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
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>
|
|
Unload the snd_hdmi_lpe_audio module. Otherwise i915 can't be unloaded.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
This will fix the -EIO from trying to start CRC on a disabled pipe.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108146
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
|
|
Modernise the test to use igt's ioctl library as opposed to the
antiquated libdrm_intel.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Subsequent tests have become really unhappy. Paper over this for now.
If this doesn't work, then I think we need to revert.
v2: Use Ram's suggestion for comment.
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>
|
|
Pick the skl+ code path for cnl+. And since this tool has
nothing to do with pch let's also replace the has_pch_split
check with gen>=5 check.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Looks so much better in the gitlab UI. Maybe we want to split out some
of these README into subdirectories ...
v2: Polish layout a bit. Changes are only whitespace, but README is so
complicated reworked that git's rename detection doesn't spot the
similarities anymore.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Pretty simple test:
- picks the hdcp capable output with suitable pipe and apply modeset.
- checks the connected sink's hdcp capability through debugfs
- apply a FB and wait for the flip completion.
- clears the content protection property
- verifies that it clears
- sets the content protection property to desired
- verifies that it transitions to enabled
- incase of timeout three reattempts are implemented
- clear the content protection property and modeset on the crtc
Above steps are repeated on all HDCP capable connectors for both
legacy and atomic subtests.
v2:
dynamic subtests are dropped [Daniel]
v3:
debugfs is used to detect the sink's hdcp capability [Daniel]
data structure is made as global variable.
v4:
debugfs file from connector's debugfs dir is used [Daniel]
v5:
i915_debugfs_connector_dir() usage is modified [Chris]
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Function to open a debugfs directory of a connector associated to
a device.
v2:
instead of string manipulation openat used [Chris]
Signed-off-by: Ramalingam C <ramalingam.c@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Documentation building differs for meson < 0.47, so let's make sure that
it works.
Also remove a comment that has slipped through.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Let's make sure that we haven't missed any tests with any of the
supported build systems.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Let's make sure that IGT compiles with autotools.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
The container stage was already using CI_ variables, pushing to the
right registry. Let's do that for the pulling containers too.
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Dump out the rotation field from the MIPI config block.
Cc: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
|