Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Creating buffers from pool allows achieve pipelined execution easier -
returned buffer is not active from driver point of view. Unfortunately
buffer should be created before use, otherwise we can hit the race.
In the test in rare cases batch created for ctrl-surf from pool was
immediate executed and not active so batch created for block-copy had
same handle. Problem occurred when block-copy was executed immediately
after surf-copy without stalls and both batches used same handle,
so latter just overwrites instructions of previous one.
Instead of using buffer pool we create two separate batches, one for
surf-copy and second for block-copy. This will remove the buffer
creation race from the pool. When src and dst buffer are not equal
visual ascii dump of differrences grouped by 8x8 blocks of pixels
are dump to stdout.
Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/6683
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Ensure global variables are explicitly defined in one place and
requires importing via extern keyword instead of duplicating definition
resolved during linking time.
Details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85678
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
I've incidentally put crc32 table definition to the header file
instead of exporting it via extern keyword. Remove this symbol
from common section to be C89 conformant.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Fixes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/126
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Fix the bug where lack of information about dependency object size
during spinner creation may lead to object overlapping and failing
with ENOSPC.
Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/7681
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Most of the tests use page size for dependency object so spinner
had this value hardcoded as a default. But there're exceptions
where dependency object is bigger and for softpin path we need to
allow pass this size to properly acquire offsets from the allocator.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
During work on allocator I've missed alignment was replaced by
default_alignment what makes a compilation error when debug path
is enabled.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Stop crc generation on basic alpha test before asserting to avoid messages
about crc buffer overflow.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Uma Shankar <uma.shankar@intel.com>
|
|
Add a small delay (ala gem_create/clear) to busywait when we run out of
pages to allocate, avoid the FPE and continue on a bit later once the
other threads have released some pages of their own.
Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/7788
Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
When we pass invalid handles to GEM_MMAP_OFFSET ioctl we should check
return error code only for supported mapping types. Use real handle
to verify kernel supports such mapping type.
Signed-off-by: Chris Wilson <chris.p.wilson@linux.intel.com>
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Don't leave the execution in a "please resume me" state if bootup
causes an abort condition. Especially handle the case of abort on
bootup when resuming correctly, so that it doesn't attempt to run a
test on a tainted kernel if we've explicitly configured the runner to
not execute when there's a taint.
v2: Fudge the results directory instead to get the desired results:
runner exits with nonzero, and resuming exits with "all done" instead
of executing anything.
v3: Use faccessat instead of open+close, use less magic strings,
remember to close fds (Chris)
v4: Use GRACEFUL_EXITCODE in monitor_output, remove the 'resuming'
field (why was it a double?!). (Ryszard)
Stop trying to execute if all tests are already run, to avoid a
crash in environment validation.
v5: Remember to git add so the 'resuming' field really gets
removed. (Kamil)
Use 0.000 in the printf format directly instead of formatting 0.0
to %.3f. (Kamil)
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arek@hiler.eu>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Added a skip condition that checks for the valid pipe connection. This is a
generic skip on pipe which checks for valid connector connection mask bit.
This condition helps to skip tests for MSO panels on non supported pipes
(C and D). This condition was missed for cursor-size-change,
cursor-alpha-opaque and cursor-alpha-transparent testcases.
--v2
- Change commit messege from "Add Gaurd for MSO eDP for Pipe C and D"
to "Skip condition for non valid pipe connector connection" [Kamil]
- skip condition using igt_pipe_connector_valid() [Juha-Pekka]
- fixed tabs [Juha-Pekka]
Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
|
|
Combine subtests in the tables of phases and engines and
loop through the use cases of the following combinations:
GTT, VRAM for GFX and COMPUTE rings for single ASIC and for two
devices.
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
P2P dma-buf support allows drivers to share device memory
(e.g., gtt, vram) with other devices using the dma-buf framework.
The DMA is capable of performing mem-to-mem, mem-to-reg, reg-to-mem
or reg-to-reg transfers.
CP DMA tests are executed between GTT and VRAM of a single chip
and also between separate ASICs.
Port cp dma tests from drm_lib with the following improvements:
- remove any global variables which restrict scalability and readability
- reuse memory allocation helpers vs new helpers as in the original test
- use helper structs to reduce the number of parameters in functions.
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Move function amdgpu_open_devices to the shared file
since other tests will also use it.
Add igt_info print for ASIC name and chip class for
convenience.
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
No functional change just cosmetic.
Rename flags parameter to alloc_flags to avoid ambiguity
with mapping flags.
Signed-off-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
[Why]
kms_chamelium tests file has grown so much and became a bit big to
manage.
Splitting specific tests like we do for kms_ tests into separate files
puts logically related functionalities into the same place so tests are
more clear.
[How]
Split kms_chamelium into 4 different tests, each testing something
specific. The tests are:
1. kms_chamelium_audio
2. kms_chamelium_edid
3. kms_chamelium_frames
4. kms_chamelium_hpd
5. kms_chamelium_color which used to be kms_color_chamelium but renamed
for consistency.
All common code lives in kms_chamelium_helper and the function names
have a chamelium_ prefix.
Signed-off-by: Mark Yacoub <markyacoub@chromium.org>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
In preparation for future HW and be consistent with other tests,
add a local helper code to use igt's helper to get the render
function ptr. While here, remove unncessary local variables.
Signed-off-by: Alan Previn <alan.previn.teres.alexis@intel.com>
Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
|
v2: Rebase
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Closes: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/37
|
|
Framebuffers created by igt_create_*_fb should be removed with
igt_remove_fb after test finish. Since all this happens inside
data_t context there is cleanup_fbs helper for it.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/7331
Signed-off-by: Andrzej Hajda <andrzej.hajda@intel.com>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
|
|
Not setting AdapterAllowed in .igtrc should be considered a valid
configuration. The default value of 'false' from
g_key_file_get_boolean when the field is missing is exactly what we
want to use, and storing the missing field error in the 'error'
variable leads to an error such as
(kms_chamelium:1713) igt_chamelium-WARNING: Failed to read chamelium port ID for DP-3: Key file does not have key “AdapterAllowed” in group “Chamelium:HDMI-A-2”
v2: Check if the field exists first to get syntax validation
happening, handle the error accordingly by bailing out (Ryszard)
Signed-off-by: Petri Latvala <petri.latvala@intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Reviewed-by: Ryszard Knop <ryszard.knop@intel.com>
|
|
Some systems observe instability if fb is not removed in the
reverse order.
Signed-off-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Aurabindo Pillai <aurabindo.pillai@amd.com>
|
|
We should still be able to GTT evict objects during execbuf (old
bindings can linger around), even if there is object lock contention. In
the worst case the execbuf should just wait on the contented locks.
Returning -ENOSPC smells like a regression from past behaviour, and
seems to break userspace.
v2:
- Add coverage for explicit softpin
- Add timeout for the spinner
v3:
- Improve the test description
v4: (Nirmoy)
- We only need one handle2
- Prefer NSEC_PER_SEC
References: https://gitlab.freedesktop.org/drm/intel/-/issues/7570
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Nirmoy Das <nirmoy.das@intel.com>
Cc: Mani Milani <mani@chromium.org>
Reviewed-by: Nirmoy Das <nirmoy.das@intel.com>
|
|
The DRM color mgmt doc states "Each of the properties are optional" so
CTM test should not depend on degamma/gamma properties to run. Also,
setting each property individually is the way that atomic degamma/gamma
tests work. However, from previous discussions around 64d0ff72 [1], i915
seems to need degamma/gamma settings around the CTM property (except for
the max CTM cases). Therefore, remove dependency on degamma/gamma
support from CTM tests and only set them for i915 (keeping the skip for
max CTM cases).
[1] https://patchwork.freedesktop.org/patch/296122/?series=58412&rev=9
Signed-off-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Alex Hung <alex.hung@amd.com>
|
|
Add two igt_subtests for DRM_IOCTL_VC4_MMAP_BO, which tests the possible
invalid parameters for the IOCTL and also the read/write coherency of a
newly mapped bo. Moreover, also adds a check to assure that the mmap's
offset is a multiple of the page size as returned by sysconf(_SC_PAGE_SIZE).
Reviewed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|
The current tests for the V3D's Mmap IOCTL don't cover all the
possible invalid parameters on drm_v3d_mmap_bo. Therefore, add a
subtest to make sure that flags on drm_v3d_mmap_bo is zero and also
add a subtest to test the read/write coherency of a newly mapped bo.
Moreover, also adds a check to assure that the mmap's offset is a
multiple of the page size as returned by sysconf(_SC_PAGE_SIZE).
Reviewed-by: Melissa Wen <mwen@igalia.com>
Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|
Replace open-coded expressions with their equivalents in the IGT
infrastructure and macros. In particular, replace open-coded
implementations of do_ioctl() and do_ioctl_err().
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
It is safer to use intel_allocator_get_address_range than arbitrary
hardcoded start offset that may be too low.
Signed-off-by: Dominik Karol Piatkowski <dominik.karol.piatkowski@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
On some platforms it may be required to use non-zero start address
that is also aligned. Allocating memory before aligned safe start offset
may result in failures.
Signed-off-by: Dominik Karol Piatkowski <dominik.karol.piatkowski@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Changes in reloc allocator requires releasing offsets. Additionally
allocator provides consecutive offsets (gem_close() + put_offset())
allowing batches to be executed without stalls. As offsets quickly can
reach 32b ppgtt border adding 48B flag for objects is now necessary.
Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/7672
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
The hardcoded fb resolution (1920x1080) is replaced by the output
resolution.
Signed-off-by: Alex Hung <alex.hung@amd.com>
|
|
For multiprocess scenarios where drm fds are reopened new contexts
created will have same ctx id. Since reloc allocator started
tracking allocations we have ensure it will be opened on separate
<fd, ctx> pair. Previously reloc simply incremented offsets (even in
multiprocess scenarios) so there were no risk to reuse/rebind offsets
from another process. Also fix bug in offset release - put_offset()
should contain handle, not offset.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
After changing reloc allocator to track offsets allocations all
shortcommings started to be visible. Release offsets requires
handles, not offsets so fix this in the tests.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
|
|
Add igt_subtests for the VC4's Perfmon IOCTLs:
DRM_IOCTL_VC4_PERFMON_CREATE, DRM_IOCTL_VC4_PERFMON_DESTROY and
DRM_IOCTL_VC4_PERFMON_GET_VALUES. The tests aim to make sure that the
performance monitors are being properly created and destroyed and to
ensure that improper parameters return an errno.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
|
|
Currently, if the VC4 tests are run on BCM2711/Raspberry Pi 4, they will
fail with no warning. So, add igt_require to the VC4 tests to check if
VC4 has rendering capabilities before running the tests.
In order to check if VC4 is running on BCM2711/Raspberry Pi 4, create a
function that checks if the vc4 driver has syncobj capabilities. If not so,
it means that the tests are being run on BCM2711/Raspberry Pi 4, as vc5
doesn't have syncobj capabilities.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
|
|
Some VC4 tests use the page memory size, so create a macro to define the
page size as 4096 and replace this value for the macro in the VC4 tests.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
|
|
The VC4 test files contain some includes that aren't required for
compilation: some includes are simply not used and others are included
through other headers. Simplify the code by removing unused includes.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
|
|
VC4 contains a substantial number of tests. In order to avoid polluting
the main tests folder, move the VC4 tests to a separate folder.
Moreover, create a subdir "vc4" to install the VC4-specific tests.
Signed-off-by: Maíra Canal <mcanal@igalia.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
|
|
Exercise sequence of blits packed in single batch. It may reveal
flushing/decompressing/detiling problems during execution.
multicopy-inplace version differs from copy-inplace version with
additional blit to same tiling format during decompression to separate
problems visible in decompressing/detiling in one step.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com>
|
|
Add some flexibility in building user pipelines extracting blitter
emission code to dedicated functions. Previous blitter functions which
do one blit-and-execute are rewritten to use those functions.
Requires usage with stateful allocator (offset might be acquired more
than one, so it must not change).
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com>
|
|
During debugging phase we established there's not necessary to enforce
same pitch for destination surface in FULL_RESOLVE mode. Relax this
condition allowing caller to pass requirement surface configuration.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Karolina Stolarek <karolina.stolarek@intel.com>
Reviewed-by: Karolina Stolarek <karolina.stolarek@intel.com>
|
|
We don't need to link with intel libdrm so get rid of libdrm configuration
as well as bufmgr stub.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Libdrm was removed from intel tools so lets remove libdrm configuration
and migrate tools to normal tools list.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Function is not used anymore in IGT so lets remove it, especially it
keeps libdrm dependency.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Instead of using libdrm decode code, switch to ported to IGT counterpart.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Decoding part is in use in intel_dump_decode and intel_error_decode
tools. To detach from libdrm just take copy - it is almost verbatim
(apart of rename and some minor intel_gen() adoptions).
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
As few remnants were rewritten (prime_udl, prime_nv_*, benchmarks)
we can finally remove libdrm code in intel_batchbuffer.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|
|
Few benchmarks still used libdrm so let's rewrite them to be libdrm
free. I tried to mimic the libdrm behavior as much as possible but
according how libdrm caches handles/mappings there may be some
differences in performance execution.
v2: Move benchmarks to scope without libdrm in meson.build
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Acked-by: Petri Latvala <petri.latvala@intel.com>
|