Age | Commit message (Collapse) | Author |
|
We don't use SPDX in IGT, and the GPL-2.0 statement seems like an
oversight and MIT was intended, as with the rest of the project.
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Deepak Rawat <drawat@vmware.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Acked-by: Deepak Rawat <drawat@vmware.com>
|
|
In order to pin the engine as busy, we have to prevent the kernel from
executing other independent work ahead of our plug, so tell the spinner
to not allow preemption.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
streak isn't initialized, which makes the test fail in the case in which it's
not zero by chance. This bug has been seen in production™.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
In the exec-shared-gtt test, we cheekily try to reference an object we
placed in the GTT in an earlier execbuf (and avoid declaring it in the
later call). For a global GTT, where there may be existing objects, we
have to find a hole large enough to fit both and avoid and implicit
guard pages.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110876
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
There are two reasons for this:
* An opaque struct is more type-safe than an int
* In the future we'll want to tag EDIDs with the Chamelium port ID, to be able
to automagically infer the DRM connector <-> Chamelium port mapping. This is
necessary for DP MST (connector names are not stable).
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
We don't use the default Chamelium EDID anymore in Chamelium tests. We can drop
it.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
Set flatline test amplitude to 0.1 instead of 0.9. There have been concerns
about edge-cases where bad TV hardware is connected via HDMI/DP and breaks when
a DC offset is sent.
This is a first mitigation. A second mitigation to only send audio to the
Chamelium device instead of all HDMI/DP ports is planned, but requires changes
in ALSA and/or DRM.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
Since we are fiddling behind the scenes, we are writing to objects that
are not part of the execbuffer, do not rely on implicit domain
management being able to track the appropriate CPU cache status.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110890
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Make sure there is at least one unique crc among the set of
reference crcs. This avoids the test succeeding when the plane
is never even on, as happened with SDR planes on icl after
I fumbled switchhing the pipe HDR and non-HDR modes.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Simon Ser <simon.ser@intel.com>
|
|
Pre-icl can't scale fp16 formats so let's skip those. Since we
already have the can_rotate() function let's add a similar one
for scaling.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Simon Ser <simon.ser@intel.com>
|
|
This test enables a Chamelium port with an audio-friendly EDID, and then checks
that the EDID-Like Data exposed by ALSA matches our expectations.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
|
|
This makes it clearer what happened when an assertion fails. It's also easier
to write CI bug log filters.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-By: Martin Peres <martin.peres@linux.intel.com>
|
|
Nothing to see here, please move along.
The short story seems to be that a BIOS update made concurrent GTT
access a few orders of magnitude slower, severely hampering CI. Where
the fault actually lies is unknown, and how to circumvent it, unknown.
References: https://bugs.freedesktop.org/show_bug.cgi?id=110882
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
Acked-by: Daniel Vetter <daniel@ffwll.ch>
|
|
The per-engine TIMESTAMP (at least at the offset I know about) only came
into being with gen6. So skip the test on older gen as the results are
garbage.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110874
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Prior to this commit, we were using the Chamelium's default EDID for DP audio.
This relies on the fact that this EDID supports audio and has correct audio
paremeters for our testing.
Generating our own EDID is less error-prone and will allow us to test different
audio parameters.
v2:
- Replace {HDMI,DP}_AUDIO_EDID_LENGTH with AUDIO_EDID_LENGTH (Arek)
- Don't hardcode EDIDs array length (Arek)
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Currently, subtest bad-pixel-format is getting skipped for gen11.
To enable this for gen11+ platforms, added override_fmt - which could
be any gen11+ format not allowing 90/270 degree rotation like C8,
Y210, Y212, Y216, etc.
DRM_FORMAT_C8 fmt needs to be enabled for IGT, so this can't be used
yet. So, I have used DRM_FORMAT_Y212 which is enabled in IGT.
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
|
|
Fixes: c26e76418f49 ("tests/gem_exec_balancer: Manually calculate VLA struct sizes")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
The kms_flip test relies on VBlank support, and this situation may
exclude some virtual drivers to take advantage of this set of tests.
This commit adds a mechanism that checks if a module has VBlank. If the
target module has VBlank support, kms_flip will run all the VBlank
tests; otherwise, the VBlank tests will be skipped. Additionally, this
commit improves the test coverage by checks if the function
drmWaitVBlank() returns EOPNOTSUPP (i.e., no VBlank support).
V7: Skip seq number checking and busy flip if the device doesn't support
vblank
V6: Set errno to zero before call drmWaitVBlank() (Chris Wilson)
V5: Drop the DRM_VBLANK_NEXTONMISS (Chris Wilson)
V4: Replace DRM_VBLANK_ABSOLUTE by DRM_VBLANK_RELATIVE and
DRM_VBLANK_NEXTONMISS
V3: Add documentation (Daniel Vetter)
V2: Add new branch coverage to check if VBlank is enabled or not and
update commit message
V1: Chris Wilson
- Change function name from igt_there_is_vblank to kms_has_vblank
- Move vblank function check from igt_aux to igt_kms
- Utilizes memset in dummy_vbl variable
- Directly return the result of drmWaitVBlank()
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
|
|
Now that core options are set to 500 and above, start from the lowest
values without causing problems with conflicts. This also rename the
constants to follow the names from the core.
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
I told vecs0 to use vecs1 registers...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Antonio Argenziano <antonio.argenziano@intel.com>
|
|
These tests checked for EINVAL, but the correct error value is ENOENT, as
pointed out by Chris Wilson:
commit bf79cb914dbfe848add8bb76cbb8ff89110d29ff
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Wed Aug 4 14:19:46 2010 +0100
drm: Use ENOENT consistently for the error return for an unmatched handle.
This is consistent with trying to access a filename that not exist
within a directory which is a good analogy here. The main reason for the
change is that it is easy to confuse the error code of EBADF as an
performing an ioctl on an invalid file descriptor (rather than an
unknown object).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit fixes the two bad tests (the gem_mmap_gtt test already checks for
ENOENT).
Signed-off-by: Simon Ser <simon.ser@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
The loop condition is never satisfied, since after filling the array i > 0. For
this reason the loop is always a no-op.
Use a more conventional loop instead.
Fixes: 964e39159c64 ("tests/i915/gem_mmap: Add invalid parameters tests")
Signed-off-by: Simon Ser <simon.ser@intel.com>
Acked-by: Antonio Argenziano <antonio.argenziano@intel.com>
Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
|
|
Now that igt_fb has some support for C8 we can enable
the 8bpp subtests.
v2: Make sure GAMMA_LUT prop is available (Maarten)
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
$ diff <(sed "s/ /\n/g" meson-test-list.txt | grep -v 'vc4\|v3d\|panfrost' | sort) <(sed "s/ /\n/g" autotools-test-list.txt | sort)
30d29
< gem_ctx_clone
32d30
< gem_ctx_engines
36d33
< gem_ctx_shared
137d133
< gem_vm_create
145a142,146
> i915/gem_ctx_clone
> i915/gem_ctx_engines
> i915/gem_ctx_shared
> i915/gem_exec_balancer
> i915/gem_vm_create
Let's make this consistent with meson and all the other gem tests we
have.
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
It was missing due to a small oversight in a variable name.
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: Petri Latvala <petri.latvala@intel.com>
|
|
VLA in structs (struct { int array[count] }) is a GCC extension, so
let's avoid using it.
v2: don't be overzealous in converting static-size structs
v3: use correct sizes (Chris)
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Simon Ser <simon.ser@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
There are two reasons why I want to introduce this library:
- I want to use it from the Chamelium tests for DisplayPort
- I want to expand it to also check that audio parameters parsed by ALSA are
correct (formats, sampling rates, sample sizes and so on)
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
This new function uses igt_edid to generate an EDID suitable for testing HDMI
audio. It's imported from kms_chamelium with minor edits, it's used there and
in kms_hdmi_inject. A (unexported for now) generate_hdmi_audio_edid function
enables generation of EDIDs with arbitrary SAD and speaker blocks.
This obsoletes kmstest_edid_add_audio.
The sanity check for the HDMI audio EDID has been moved from
lib/tests/igt_hdmi_inject.c to lib/tests/igt_edid.c.
Signed-off-by: Simon Ser <simon.ser@intel.com>
Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
|
|
before start testing try out how many planes kernel will
allow simultaneously to be used.
v2 (Jose Souza, Daniel Vetter): Fix resource leaks. Randomize
used planes.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
|
|
The submit-fence + load_balancing apis allow for us to execute a named
pair of engines in parallel; that this by submitting a request to one
engine, we can then use the generated submit-fence to submit a second
request to another engine and have it execute at the same time.
Furthermore, by specifying bonded pairs, we can direct the virtual
engine to use a particular engine in parallel to the first request.
v2: Measure load across all bonded siblings to check we don't
miss an accidental execution on another.
v3: Throw in a check for master as well.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
Exercise the in-kernel load balancer checking that we can distribute
batches across the set of ctx->engines to avoid load.
v2: Many assorted improvements from Tvrtko.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
To exercise the new I915_CONTEXT_PARAM_ENGINES and interactions with
gem_execbuf().
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Andi Shyti <andi@etezian.org>
Reviewed-by: Andi Shyti <andi@etezian.org>
|
|
Queues are a form of contexts that share vm and enfore a single timeline
across all engines. Test switching between them, just like ordinary
contexts.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
v2: Test each shared context is its own timeline and allows request
reordering between shared contexts.
v3: Use the modern interface to use physical engines for testing
single-timeline along each real engine.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Exercise cloning contexts, an extension of merely creating one.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Check that the extended create interface accepts setparam.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Exercise reusing the GTT of one ctx in another.
v2: Test setting back to the same VM
v3: Check the VM still exists after the parent ctx are dead.
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>
|
|
Exercise basic creation and swapping between new address spaces.
v2: Check isolation that the same vm_id on different fd are indeed
different VM.
v3: Cross-over check with CREATE_EXT_SETPARAM
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>
|
|
When running the stealing tests, we set the same mode on the eDP and
the other connector. If the eDP is 4k, we may try to set a mode that
is not supported on the other connector, which might be 1080p.
Fix this by selecting the smallest default mode, based on clock.
Hopefully this is more likely to be supported on all connectors,
instead always using the first connector's mode.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110391
[mlankhorst: Kill off 1 extra copy of mode (vsyrjala)]
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
i915_gem_gtt_info has been removed and so flink-and-exit-vma-leak is
defunct.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
Kernel doesn't support Y or Yf tiling for interlaced modes. In kms_flip_tiling test case
we are missing such a check. Let's add a requirement that whenever we try to do flip with Y/Yf
tiling, we ensure that we have non-interlaced mode selected.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110772
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
The DRM color management pipeline doesn't directly map to AMD hardware
so creative solutions to implementing CRTC regamma, CTM and gamma were
needed for both DCE and DCN. A few mistakes were made in the process
that weren't caught by kms_color@ tests:
- Can't get linear degamma output without setting a custom degamma
- Can't specify a non-linear degamma that produces correct output
- Can't specify a correct gamma when a linear degamma is used
These are caused by using implicit sRGB degamma then sRGB gamma when no
matrices are set. This produces visually correct output when using a
CTM with no matrices set, but it's also technically the incorrect
output according to the DRM API documentation.
These tests help verify that AMDGPU follows the DRM spec when it comes
to setting linear/bypass gamma and regamma LUT.
The existing kms_color@ tests are written correctly already, so
anything that looks shared in these is really just to verify that we're
no longer doing any strange test specific workarounds outside of the
spec or documentation.
Cc: Leo Li <sunpeng.li@amd.com>
Cc: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Reviewed-by: Leo Li <sunpeng.li@amd.com>
|
|
On apl, mmio reads fail, reading 0.
On cml, SRM reads fail, reading 0.
Combine both approaches, starting with SRM and fixing in the blanks with
mmio reads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
|
|
It seems like the HW validator is getting better at preventing our
snooping of system registers from non-privileged batches! If we can't
use SRM, let's probe the register directly through mmio, making sure we
have the context spinning on the GPU first.
v2: Hold forcewake just in case the spinning batch isn't enough to
justify our register access.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110544
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld@gmail.com>
Reviewed-by: Matthew Auld <matthew.william.auld@gmail.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Move the stray ')' from
gem_can_store_dword(exec_id) | exec_flags
to
gem_can_store_dword(exec_id | exec_flags)
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110764
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
We already perform the format+mod+rotation test using the small fb, so
we don't actually need to create the big fb until that test has been
performed. We do need to calculate the big fb dimensions though so that
we can calculate the coordinates we're going to use in the test.
$ time kms_big_fb
- real 0m52.902s
+ real 0m52.616s
so not so great.
But if I run each subtest separately it starts to add up:
$ for i in `kms_big_fb --l` ; do kms_big_fb --r $i ; done
- real 5m32.898s
+ real 4m32.164s
The big difference between those two ways of running the test
is at least partially due to the test reusing big fb between
the different rotation subtests for each format+mod combo.
Running each subtest individually can't get that benefit so
avoiding needless big fb creation starts to make a difference.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
I think we can safely assume that if no plane on the first
available pipe supports the format+mod+rotation combo we
don't have to check on all the other pipes.
The only slight exception is CHV where pipe B has a few more
features, but none of those are actually relevant for this
test.
Also leave put the PIPE_ANY commit as that still causes
pointless modesets.
$ time kms_big_fb
- real 2m8.101s
+ real 0m52.902s
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
Now that igt_fb has rudimentary C8 support let's test it.
We have to generate a custom palette for it of course.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
|
|
In order to run as a standalone test (i.e. immediately after booting a
device), we need to explicitly probe the connectors.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Imre Deak <imre.deak@intel.com>
|