Age | Commit message (Collapse) | Author |
|
The "max bpc" property only ensures that the bpc will not go beyond
the value set through this property. It does not guarantee that the
same bpc will be used for the given mode.
If clock/bandwidth constraints permit, the max bpc will be used to
show the mode, otherwise the bpc will be reduced. So, if we really
want a particular bpc set, we can try reducing the resolution, till
we get the bpc that we set in max bpc property.
This patch will skip the test, if there is no valid resolution to get
the same bpc as set by max_bpc property.
V2:
* Refactor the logic
V3:
* Minor changes
V4:
* Drop 4K restriction check
Cc: Swati Sharma <swati2.sharma@intel.com>
CC: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
|
|
Add helper function to sort drm modes based on the clock, resolution
in both ascending & descending order.
V2:
* Minor changes
V3:
* Added documentaion for helper functions
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
|
|
Add local definitions for ATS-M to enable it for testing.
Signed-off-by: Karolina Drobnik <karolina.drobnik@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
intel_gen is designed to return a big unsigned number for an unknown device.
The value is interpreted to be the newest generation possible, and the matching
configuration is used. Some functions incorrectly pass the gen value as a signed
number, meaning it becomes negative, and the oldest configuration is used
instead of the newest one. This leads to GPU hangs in some cases.
Update the definition of submit functions in gem_exec_gttfill and gem_softpin,
and has_cs_timestamp in gem_ctx_engines to use a correct type for gen parameter.
Signed-off-by: Karolina Drobnik <karolina.drobnik@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Promote intel_os.c helpers to igt_os.c, so that I can re-use them for
some additional msm tests. Just big churny rename, no functional change.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Inspired by previous change in alpha-7efc[1], get a clearer validation
for the swappable property of plane_alpha and fg.alpha in the coverage
blend formula. Get rid of the 8-increment alpha loop by refactoring
coverage-7efc to a one-shot assert format, avoiding doubts related to
bit precision and rounding issue.
[1] Commit f9efaee9565f ("tests/kms_plane_alpha_blend: refactor
alpha-7efc for clearer validation")
v2:
- add commit reference to alpha-7efc change
Signed-off-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Sung Joon Kim <sungkim@amd.com>
|
|
Be nice and explicitly free all memory on exit.
Also fix a Valgrind reported unitilised conditional jump.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Ensure buffer is null terminated at the point where the read ended and not
at the end of the whole buffer. Otherwise string parsing can stray into
un-initialised memory.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Fix a possible oversight.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Current code is improperly setting over framebuffer size. Fix this
by setting primary framebuffer size instead.
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
|
|
Make setting framebuffer and plane sizes/positions more clear. This
eases adding more big framebuffer testcases in future.
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
|
|
Ensure big version of plane_update testcases is not used unless
specifically requested.
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
|
|
Current code is setting wrong size for cursor framebuffer. Fix thi
by handling all plane types separately.
Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6064
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
|
|
Fix mixed declarations warning introduced by (58a5a2d5)
[214/1052] Compiling C object lib/libigt-igt_kms_c.a.p/igt_kms.c.o
../lib/igt_kms.c: In function ‘igt_display_require’:
../lib/igt_kms.c:2468:3: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
2468 | igt_output_t *output = igt_get_single_output_for_pipe(display, i);
| ^~~~~~~~~~~~
Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
there are multiple possible primary planes
Currently, IGT populates pipe->planes using possible_crtcs and assumes
that the first primary plane it encounters is the one being actively
used by the pipe.
This is not always true in cases where there are multiple possible
primary planes. This will cause problems whenever IGT calls
drmModePageFlip since drmModePageFlip will use the primary plane
assigned to the pipe by the driver to perform the page flip [1]. So a
mismatch between the primary plane used by IGT and the driver can cause
the page flip to fail.
To fix this, let's implement a helper method to get the primary plane
that's being assigned to the pipe by the driver. We can then call it
during igt_display_require() and, if there's a mismatch between
pipe->plane_primary and the assigned primary plane's index, we can swap
the unused primary plane with the driver-assigned primary plane
[1]
https://gitlab.freedesktop.org/drm/msm/-/blob/msm-next/drivers/gpu/drm/drm_plane.c#L1234
Changes since v1:
- Instead of swapping the pointers of the planes within the array, we
can just change the value of pipe->plane_primary.
Changes since v2:
- Reverted `if (type == DRM_PLANE_TYPE_PRIMARY)` conditional then added
a nested if statement to increment num_primary_planes if plane type is
primary.
Changes since v3:
- Created helper method igt_pipe_has_valid_output and added a check for
if pipe has valid output before getting the output of a pipe to get
the assigned primary plane
- Reverted back to using igt_swap to swap the order of the primary
planes within the pipe->planes array. Some kms_* tests use
igt_output_get_plane(output, 0) to get the primary plane, so this will
avoid regressions in those tests.
- Updated the plane->index of the primary planes that are being swapped.
Suggested-by: Rob Clark <robdclark@chromium.org>
Signed-off-by: Jessica Zhang <quic_jesszhan@quicinc.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Mark Yacoub <markyacoub@chromium.org>
|
|
Added test description to all the available subtests.
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Added test description for subtest that are available.
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
On kernels without support for the feature we should skip showing the
clients header to avoid confusing users.
Simply briefly open a render node to the selected device during init and
look if the relevant fields are present in the fdinfo data.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Issue: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/120
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
For newer gens there will be no relocations, so adopt test to
run using soft-pinned addresses. Refactor code to run on
discrete DG2, where there are no pwrite ioctl. Use calculated
offsets for older gens so it will avoid applying relocations by
i915 kernel driver.
v2: refactor to run on DG2 and older gens (Zbigniew review)
v3: use calculated offsets for older gens (Chris comments)
v4: move setting NO_RELOC flag out of if-block (Zbigniew)
update commit message about DG2 refactoring
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: "Zbigniew Kempczyński" <zbigniew.kempczynski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Currently when children processes try to communicate to not existing
allocator thread they got crash with vague SIGSEGV.
Adding readyness flag and detailed explanation in assert should hint
the developer to add missing intel_allocator_multiprocess_start|stop)
functions.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
In this patch, removed redundant code. Also, before starting the
subtest, cleaned up the states to default by igt_display_reset().
Few minor fixes in indentation. Also, added subtests description.
v2: -minor mistake in subtest name
-commit was missing after reset, added
v3: -fixed styling error
-replaced drm calls with igt wrappers
v4: -added igt_display_require_output() in igt_fixture
-modularized code, added func() for checks
-added func() to get highest mode
v5: -minor fixes
v6: -made modifications based on lib changes
v7: -added igt_fixture
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Patnana Venkata Sai <venkata.sai.patnana@intel.com>
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
|
|
Made corresponding changes in tests wrt lib changes in [1/3].
Basically, we have replaced output->config.connector with
output->name.
Suggested-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
|
|
Use libdrm connector name from output->name, instead of
constructing it from drm resources.
Suggested-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
|
|
Most of the time, i915 module unload happens inside a subtest.
So, using igt_fork() is OK. However, on i915_selftest, this
is called earlier, at igt_kselftest_begin. This causes an
error on IGT:
forking is only allowed in subtests or igt_simple_main
please refer to lib/igt_core documentation
As igt_fork() can only be used inside subtests. So, use
igt_fork_helper() instead.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
|
|
When internal_assert() hits, it is desired to know what part
of the code actually hit the issue.
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
|
|
On some platforms (like on ATS) 0x0 may not be available so allocator
should be instantiated with safe start offset to avoid getting -ENOSPC.
Change require also relaxation of automatic range selection in the
allocator.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Cc: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
If a DUT has Chamelium ports connected via an adapter (for example, DP
on the Chamelium side -> DP-HDMI adapter -> HDMI on the DUT), this will
usually cause many tests to fail. If mismatching port types are found
on both sides, the tests will now be aborted with a warning.
This behavior can be overridden with a new AdapterAllowed config value,
which must be set in [Chamelium:PORT] blocks in .igtrc.
Signed-off-by: Ryszard Knop <ryszard.knop@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Add support for testing/skipping flat ccs modifiers
Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
I915_FORMAT_MOD_4_TILED_DG2_RC_CCS
I915_FORMAT_MOD_4_TILED_DG2_MC_CCS
I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC
modifier added for testing and prevent impossible ccs test from
flat ccs, fb generation for FB_HAS_PLANE will use linear modifier
instead if Y-modifier as its no longer supported for latest platform.
v2: Modified commit message. (Petri)
Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
Add support for DG2 flat ccs framebuffers with tile-4.
Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
commit 9035039e1ed691cd893777a42e048003a2f349d6
Author: Mika Kahola <mika.kahola@intel.com>
Date: Mon Apr 11 17:34:04 2022 +0300
drm/fourcc: Introduce format modifier for DG2 clear color
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Added subtests as a list. Also, renamed tests to
distinguish between plane vs planes tests.
Lastly, for clipping/clamping tests added new tests
as modifiers, pixel-formats and rotation.
v2: fixed indentation (JP)
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
|
|
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
|
|
kms_async_flips uses igt_draw_ and i915 modifiers, which make this test
fails for other vendors that are not Intel. Use more generic functions
and modifiers so other devices can be tested.
Since i915's "Linear memory does not support async flips", we can't use
DRM_FORMAT_MOD_LINEAR and need to keep using I915_FORMAT_MOD_X_TILED.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
|
|
Add support for drawing rectangles with random colors, useful for tests
that you don't mind which color will be used.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
|
|
This patch will find the connector/mode combination that fits
into the bandwidth when more than one monitor is connected.
Example:
When two monitors connected through MST, the second monitor
also tries to use the same mode. So two such modes may not
fit into the link bandwidth. So, iterate through connected
outputs & modes and find a combination of modes those fit
into the link BW.
V2:
* Exit if suitable modes not found in retry.
* New function to re-use the code.
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
|
|
If the given MST connector is disconnected the DPCD read out request
will throw an MST NAK reply error. This patch will handle this in the
test that skips to read the DPCD of disconnected MST connectors.
<3> [793.017171] i915 0000:03:00.0: [drm] *ERROR* mstb 00000000e5e57ca0 port 1: DPCD read on addr 0x0 for 16 bytes NAKed
Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
|
|
The kms_concurrent is about testing mode setting with
reducing the resolution and then again increasing it,
for this the test will take the high resolution supported
by the connector and then calculate the lowest resolution,
if the calculated resolution is not supported by the connector
it will assign the default resolution of 1024x 768 without
checking.
Added check to skip the subtest if the current mode is smaller
than 1024 mode (igt_skip_on_f(mode_default->vdisplay < 1024))
becuase if the default resolution is greater then the highest
resolution supported by the connector then the test should skip.
Signed-off-by: Nidhi Gupta <nidhi1.gupta@intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
|
|
Test calls igt_fork() so for i915 requires offset allocation arbitration
(allocator in multiprocess mode) especially when same drm fd is used
in children. Dedicated thread (intel_allocator_multiprocess_start())
is required to be started on the very beginning to handle offset
allocations as well as stopping it (intel_allocator_multiprocess_stop())
before test exits.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Luciano Coelho <luciano.coelho@intel.com>
Cc: Swati Sharma <swati2.sharma@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Tested-by: Luciano Coelho <luciano.coelho@intel.com>
|
|
Few gem rpm tests relies on enabling kms crtc in order to
trigger rpm resume but on headless platforms these tests
skip. Let it trigger the rpm resume by taking user
forcewake.
v2:
- removed has_runtime_pm cond from
enable_one_screen_or_forcewake_and_wait(). [Ashutosh]
- removed if (ms_data.res) cond from basic_subtest(). [Ashutosh]
- clear forcewake in both only for headless. [Ashutosh]
v3:
- s/disable_all_screens_or_clr_forcewake_and_wait/
disable_all_screens_or_forcewake_put_and_wait. [Ashutosh]
- s/enable_one_screen_or_forcewake_and_wait/
enable_one_screen_or_forcewake_get_and_wait. [Ashutosh]
- Removed if (!default_mode_params) cond. [Ashutosh]
- s/clear_forcewake/forcewake_put/
Cc: Chris Wilson <chris.p.wilson@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
Initialize igt_display_t display only in case of there are
valid drm kms resources.
v2:
- Move igt_display_fini under the 'if (data->res)' cond. [Ashutosh]
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
Change var display_disabled to display_enabled, also
modify the passed argument and condition accordingly.
Cc: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
Refactor out devid initialization out of init_mode_set_data().
Initialize it in setup_environment().
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
|
|
Add new testcase for testing selective fetch using big framebuffer.
New testcase is using much bigger fb than what is the visible area
and setting visible offset to half of the width and the height.
This reveals issues in selective fetch area calculation:
https://gitlab.freedesktop.org/drm/intel/-/issues/5440
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
Adding new continuous move testcases for cursor and overlay
planes. These new testcases are testing selective fetch when updated
plane is fully or partially out of visible area. This was found to
reveal bug in selective fetch area calculation:
https://gitlab.freedesktop.org/drm/intel/-/issues/5440
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
Modify current move continuous testcase to ease up adding new
testcases.
Remove exceeding visible area as testcases to perform this are about
to be added as separate testcases.
v2: Fix compilation error and warning
Signed-off-by: Jouni Högander <jouni.hogander@intel.com>
Reviewed-by: Mika Kahola <mika.kahola@intel.com>
|
|
Few PCI devices under DGFX card tree don't have any kernel driver.
These devices will block D3cold state of gfx root port.
Adding support to setup d3cold by enabling runtime PM for all PCI
devices under the gfx root port.
It will not save/restore pci devices power attributes.
It will be useful to tune D3Cold after boot.
v2:
- Change naming convention from configure_autosuspend to
setup-d3cold. [Rodrigo].
v3:
- Kept setting auto-suspend delay as optional. [Rodrigo]
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
intel_pm_rpm tool is a debug tool. It can be use to setup
and prepare the gfx card to go to D3Cold.
It also provide the debug option to disable all display and
prepare device to enter to runtime suspend.
v2:
- Removed IS_DGFX() condition.
v3:
- Change naming convention from setup-d3cold to force-d3cold-wait
disable-display to disable-display-wait. [Rodrigo]
v4:
- Use igt_setup_runtime_pm() only for --disable-display-wait.
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
|
|
Add an option to configure autosuspend_delay_ms as i915 read
autosuspend_delay_ms to all PCI devices under GFX root port.
configuring autosuspend_delay_ms as optional.
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
|