Age | Commit message (Collapse) | Author | Files | Lines |
|
amdgpu can perform async flips in overlay planes as well, so create a
test for that.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
|
|
Setting the test data options as true and false for every test is error
prone. Instead, reset all the data to false at the end of a test and
just set the needed options to true before running a test.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
|
|
If a driver doesn't support doing an async flip through the atomic uAPI,
the atomic tests fails. Instead of failing, create a function that
checks for this capability and skip the test if is unsupported.
Signed-off-by: André Almeida <andrealmeid@igalia.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
|
|
Rework igt_has_drm_cap to just check if a DRM capability is supported
and let the called decide what to do from this check. It prevents the
test fails because of an assert done when it's called in
igt_subtest_with_dynamics.
Co-Developed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: André Almeida <andrealmeid@igalia.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
PXP allows a user to send an encrypted BO to the display HW without
having to decode it. The driver needs however to tell the HW that the
BO is encrypted, otherwise it won't be displayed correctly. Furthermore,
if PXP is terminated before the FB is displayed, we expect to see a black
screen instead of what's in the BO.
We can test both these flows by displaying the expected image from a
non-encrypted FB and making sure that the CRC match when we display
the encrypted FB.
v2: move igt_require calls inside the subtest
v3: move repeated code to an helper (Alan)
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
|
|
There are several events that can cause the PXP key to be invalidated
and trigger a PXP termination (suspend, PXP termination irq). After a
termination, we expect the key to be different and the raw encrypted
data to change for the same source data.
Additionally, all PXP objects are invalidated during a termination and
can no longer be used in submission or kept mapped to VMs; we therefore
need to test both the execution and bind ioctls to make sure they work
as expected after a termination.
v2: move igt_require calls inside the subtest
v3: block rpm for tests trying a different type of termination, rework
invalid bind test to try a new vm as well (Alan)
v4: move file open and igt_require() inside the subtest (Kamil)
v5: add documentation for new helpers (Kamil), turn off display in RPM
tests.
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
|
|
The render supports PXP usage via rendercopy. We can use this to test
that a user is able to correctly encrypt their data. In particular, we
cover these 2 scenarios:
1) copy from clear to encrypted - we expect the dest buffer to not match
the src one due to the encryption.
2) copy from encrypted to encrypted = we expect the 2 BOs to match since
they hold the same data encrypted with the same key.
Note that the clear to clear copy is already covered by the
xe_render_copy test, while encrypted to clear is obviously not a
supported case.
Since the render_copy uses the intel_batchbuffer helpers, those helpers
have been updated to support vm bind of protected objects.
v2: move igt_require calls inside the subtest
v3: Better comments for rsvd1 overload, rename variables for clarity,
updated commit msg.
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
|
|
PXP support introduces new SET_PROPERTY extensions to both BOs and
exec_queues to mark them as being used for PXP workloads, so we need to
test both correct and incorrect usage of those new interfaces.
Since this is the first usage of extensions for BO creation, the
common BO code has been update to support the extra parameter.
v2: fix memory lead, remove unneeded igt_require (Alan)
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>
|
|
Add a new test to exercise the PXP status query.
v2: fix ioctl error checking, free allocated mem
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com> #v1
|
|
The invalid flag subtest also checks all the valid flags, so add the new
PXP flag to it.
v2: only test the new flag if the kernel supports it.
v3: rebase on the split of the update on the first invalid flag number
to its own patch.
Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com> #v2
|
|
Verify that redundant DPMS ON requests don't result in
actual commits (and thus frame drops). This behaviour
is guaranteed by the kernel for atomic drivers since
commit de93ddf88088 ("drm/atomic: Filter out redundant DPMS calls")
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
|
|
Add missing Mega features, Sub-categories and Functionality
tags to various eudebug tests.
v2: Updated according to comments on v1 made by Katarzyna Piecielska
v3: Updated according to comments on v1 made by Cristoph Manszewski
Signed-off-by: Jan Sokolowski <jan.sokolowski@intel.com>
Reviewed-by: Katarzyna Piecielska <katarzyna.piecielska@intel.com>
Reviewed-by: Christoph Manszewski <christoph.manszewski@intel.com>
|
|
This test verifies the connector's capability to clip RGB values
when switching between full and limited range output.
Steps:
1. Render a frame with full RGB values (0-255).
2. Set the connector's range property to **limited** (BROADCAST_RGB_16_235).
- Despite the full-range input, the output should be clipped
to limited range (16-235).
3. Commit and capture the output frame (Frame A).
4. Render a frame with limited RGB values (16-235).
5. Set the connector's range property to **full** (BROADCAST_RGB_FULL).
- The output should now match the input without modification.
6. Commit and capture the output frame (Frame B).
7. Compare captured frames from steps 3 and 6.
- The frames should be identical, confirming that the
connector correctly handles limited range clipping.
v2: -remove unused fb (Chaitanya)
-remove computation of reference CRC (Chaitanya)
-add details of test (Chaitanya)
v3: -use 2 fbs to avoid issues in future (Chaitanya/JP)
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
|
|
The CRC calculation in compared_frames_dump is incorrectly
using the reference frame instead of the captured frame when
capture_crc is NULL.
Fix this by correctly passing the captured frame to
chamelium_do_calculate_fb_crc().
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
|
|
Add chamelium_frame_match_or_dump_frame_pair() to compare frame
dumps captured from chamelium. If they do not, this saves the
reference and captured frames to a png file.
v2: -let crc be computed from compared_frames_dump() (Chaitanya)
-remove passing of reference_crc (Chaitanya)
Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
|
|
Check if cursor IOCTLs are behaving in timely manner via CRC.
Test CRC of the display with 2 cursors, separated by a vblank and a
sleep so that the drawing of the cursors only happens when the screen is
active and then compare the CRC of the two cases. This helps validates
that there is no tearing when doing cursor changes midframe. Test
consists of two subtests, one for checking the timely change and the
second test also adds changing position into the first test.
v2: Trim down the description.
v3: Require Intel device/driver.
v4: Tweak commit message and test description.
v5: Move igt_crc_t var to top of func to avoid compiler complain.
Signed-off-by: Shekhar Chauhan <shekhar.chauhan@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
|
|
Do not mux everything in a _do() function, but rather use
_add()/_remove()/_clear() functions for clarity and brevity.
The add()/remove() boilerplate is small enough to just be repeated. For
clear(), just implement it using add().
Reviewed-by: Sai Teja Pottumuttu <sai.teja.pottumuttu@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Correct typos and enhance clarity by specifying that the test
uses oversized bind arrays to intentionally trigger the
-ENOBUFs error
Signed-off-by: Jagmeet Randhawa <jagmeet.randhawa@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
|
|
Upcoming render-copy stress test reveals problem where multiple
threads enter binding code. Before binding/unbinding threads calls
alloc/free which collects operations to be executed in single vm_bind
ioctl. If first thread which fetches all binding operations from the
allocator will be interleaved by second thread which in turn sees no
operations are necessary to complete, it will start to execute jobs
without properly bounded offsets in the vm (it thinks addresses are
already there as there's no operations in the allocator).
Avoid this situation by migrating mutex lock to the place where thread
performing binding will finish its job. This will ensure any other
threads will wait until all binding operations are completed.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Francois Dugast <francois.dugast@intel.com>
|
|
Fixed a misplaced parenthesis in the FBC display version check to ensure
correct tiling format selection.
Fixes: f0b66883398b4a07bb8fcaa3663a2140129d9a58
Signed-off-by: Jeevan B <jeevan.b@intel.com>
Reviewed-by: Santhosh Reddy Guddati <santhosh.reddy.guddati@intel.com>
Reviewed-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
|
|
Test-with: https://lore.kernel.org/intel-xe/20250314105050.636983-1-francois.dugast@intel.com/
Signed-off-by: Francois Dugast <francois.dugast@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
|
|
Update PSR active check logic to correctly identify active
state for Panel Replay on DisplayPort connectors.
v2: Rejected.
v3: Fix null pointer crashes by adding a change to prevent
potential null pointer dereferences.
v4: drmModeConnector pointer `c` is now initialized to NULL.
Signed-off-by: Naladala Ramanaidu <ramanaidu.naladala@intel.com>
Reviewed-by: Jouni Högander <jouni.hogander@intel.com>
|
|
There was added new generic Intel test intel_sysfs_debugfs
which checks sysfs and debugfs for both i915 and Xe.
Lets block i915 ones for Xe runs.
Cc: Katarzyna Piecielska <katarzyna.piecielska@intel.com>
Cc: Peter Senna Tschudin <peter.senna@linux.intel.com>
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Pallavi Mishra <pallavi.mishra@intel.com>
Reviewed-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
|
|
There was recently added new generic Intel test
intel_sysfs_debugfs@xe-debugfs-read-all-entries which is causing
a valid skip on DG2. Lets block all similar Xe tests from i915
runs.
Cc: Peter Senna Tschudin <peter.senna@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13983
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Pallavi Mishra <pallavi.mishra@intel.com>
Reviewed-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
|
|
Disable the umq tests under a macro till we have all
dependencies resolved.
v2: Partial revert of commit 7b68bf5fe9c91e3636b359893f0106dfa34ee800
to maintain the same condition for executing cs_nop tests on kernel
queues.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Till the firmware and libdrm code is upstreamed
we disable the Usermode queue code by default
under a macro.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
functions like amdgpu_alloc_doorbell and
amdgpu_bo_unmap_and_free_uq are internal function
only hence making then static and removing from
amd_user_queue.h
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
With kernel queues disabled num_rings will be reported zero.
Enforce the condition to be always true till the time
we have IOCTL to read this information from kernel.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Use a memory fence to serialize all the writes in the
queue before updating wptr and ringing the doorbell
This ensures memory is written in same sequence as
intended to.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Use amdgpu_query_uq_fw_area_info api to get the sizes
and alignment for shadow and csa.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Add new tests to support amdgpu_cs_nops tests for UMQ
submission by modifying the existing cs_nops tests
to support UMQ.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Use ring add cmds macros to add the cmds in the user
ring instead of directly using the queue ptr and wptr
ptr.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Add macros which enable adding cmds in user queue
for size more than ring size. Ring is treate as
a circular buffer and ovewrite from beginning
when write ptr reaches the end of queue.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Use memory allocation API's from memory.h library
header instead of using a local definition.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Add UMQ support in amdgpu_sync_dependency_test and also
add a new test case which will run this test for UMQ
submission.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
We already have the gfx and compute ip user mode submission
support added in the IGT and hence with this patch we are
adding a new test case for gfx and compute using UMQ
submission.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Add support of user queue command submission for
a. amdgpu_command_submission_gfx
b. amdgpu_command_submission_compute
Also add support of user queues in all the helper
functions used by the above functions.
Also since helper functions are same for sdma too
so update the function call to accommodate the changes.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Add amdgpu_bo_alloc_and_map_sync func which
is synchronised version of amdgpu_bo_alloc_and_map.
It wait till the timeline is signaled and page tables
are updated for the bo.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
This is the first patch set to add support of
UMQ(User mode queues) submission in IGT.
UMQ allows users to directly create a user queue and
submit workload to the GPU h/w to directly instead
of sending the workload to kernel and then to GPU h/w.
This will be used by test cases which will be testing
the UMQ queues for gfx/compute and sdma to start with.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Add the meta data to support the user mode command
submission in the ring_context.
User mode command submission methods needs these
resources to be initialized and to create/destroy queues.
Also once we have the queue created the queue id is
used to submit the work load to the h/w.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Align with kernel commit adc218676eef
commit dc6a198ce587c0469136c54888f58cb2ec2582f1
Merge: fa6355bbe92e adc218676eef
Merge tag 'v6.12' into amd-staging-drm-next
Linux 6.12
https://lore.kernel.org/dri-devel/20240906211008.3072097-1-alexander.deucher@amd.com/T/#u?utm_source)
Commit adc218676eef: https://github.com/torvalds/linux/commit/adc218676eef
This patch introduces new UAPI/IOCTL for usermode graphics
queue. IGT test cases fill this structure and request
the graphics driver to add a graphics work queue for it.
The output of this UAPI is a queue id.
This UAPI maps the queue into GPU, so the graphics app can start
submitting work to the queue as soon as the call returns.
v2: Kamil requested the SHA of a commit from the drm-next branch.
Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
|
|
Runner is printing time to stdout/stderr with CLOCK_BOOTTIME but
when measuring time for a test it is using an igt library which
uses CLOCK_MONOTONIC. This leads to an errors when calculating
time left for tests using suspend or hibernate. For example log:
[77.376851] [020/123] (932s left) kms_flip (2x-flip-vs-suspend)
[77.592412] Starting subtest: 2x-flip-vs-suspend
[77.604996] Starting dynamic subtest: AB-DP2-HDMI-A3
[115.135795] Dynamic subtest AB-DP2-HDMI-A3: SUCCESS (6.776s)
shows test runs for around 6 seconds, while wall time shows
it took around 38 seconds.
Create a separate, runner specific function for time measure
and use it where current time is needed.
Cc: Ewelina Musial <ewelina.musial@intel.com>
Cc: Petri Latvala <adrinael@adrinael.net>
Reported-by: Karol Krol <karol.krol@intel.com>
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Dominik Karol Piątkowski <dominik.karol.piatkowski@intel.com>
Tested-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
Reviewed-by: Peter Senna Tschudin <peter.senna@linux.intel.com>
|
|
even if all framebuffer as marked as slow on xe
let's still use cpu for linear framebuffers
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
|
|
Add some general guide about adding new library function and
a few guides for their usage outside of tests.
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Acked-by: Katarzyna Piecielska <katarzyna.piecielska@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
Add guide and link to subscription into mailing list and link
for patchwork.
v3: Added https://lore.kernel.org/igt-dev/ (Ashutosh)
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
|
|
Add two tests to run workload on one function at a time with different
scheduling policies. If sched-if-idle is set to true, then the functions
use the execution quantum even if idle
v2: add additional test for sched if idle (Umesh)
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
|
|
Provision and enable 2 VFs with execution quantum and scheduling policy
set. Add a test that runs workload on all functions simultaneously and
validates that all engines are equally and fully loaded for the
entire execution quantum of the function
v2: add a different function for function config
add function details to log
move pmu_fd to struct
enable and provision VF's (Umesh)
v3: split patches
move exec_quantum to variables
skip test if vfs are already provisioned
fix assert (Umesh)
v4: move provisioning to single function (Umesh)
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
|
|
move xe perf device to fixture and re-use instead of
initializing multiple times
Signed-off-by: Riana Tauro <riana.tauro@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Reviewed-by: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
|
|
Add support for runtime power management
for Xe driver along with existing i915
support
v1 : Updated references from "i915" to
"generic GPU driver" to include support
for the xe driver, ensuring clarity and
consistency
v2 : Add prefix in commit message (Kamil)
v3 : Add a error or warn statement (Riana)
v4 : Fix for timedout log message (Riana)
Signed-off-by: Soham Purkait <soham.purkait@intel.com>
Reviewed-by: Riana Tauro <riana.tauro@intel.com>
|
|
Add driver field to igt_device_card structure
for storing driver names.
v1 : Add driver field to igt_device_card struct
v2 : Reorder commit sequence (Riana)
Include sign-off
Signed-off-by: Soham Purkait <soham.purkait@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Riana Tauro <riana.tauro@intel.com>
|