Age | Commit message (Collapse) | Author | Files | Lines |
|
Race the execution and interrupt handlers along a context, while
closing it at a random time.
v2: Some comments to handwave away the knowledge of internal
implementation details.
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>
|
|
Use the elapsed time for the fastest timeslice to define the acceptable
error threshold. This gives us a lot more leeway for the slow devices.
Maybe too much leeway?
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
If we let an object idle in a shared GTT, it may be evicted by the
kernel in favour of another client. Thus, we have to be very careful
when asserting that two different executions of the same object will
be at the same address. If there's an idle point between the two
asserts, it will only be guaranteed to hold for full-ppgtt.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2754
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
On packed formats there's no need to show separate colors on separate fbs.
Here augmented path with packed color handling which check colors just on
one fb.
This cannot be directly applied to planar yuv formats because of scaler
use with those formats.
On my ICL this drop test execution time from 44.91s to 21.98s
v2 (vsyrjala): paint entire screen instead of lines. small refinement.
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Patnana Venkata Sai <venkata.sai.patnana@intel.com>
|
|
Use the spinners to provide exactly the right amount of background
busyness.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
These tests were removed under a blatantly false statement to hide a
regression. Denying that userspace can deadlock other clients, does not
stop the violations. Introducing such deadlocks deliberately is a cause
for concern.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Default device list prefers vendor and device names. Add -n switch
to display vendor/device as hex strings.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
In multi device world we may want to see generation of device we're
tracking counters. Add pretty name of the device to be more verbose.
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
If we want to use pci device id for not opened device we need to
keep it in card structure.
Export igt_device_get_pretty_name() function to the caller to
allow return pretty name (for lsgpu, intel_gpu_top and others).
Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
|
|
While we want the capture to last long enough to delay the concurrent
client, we don't want to wait forever for the capture to complete to
proceed with the testing.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2559
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Correcting typo error for plane scaler with clipping and clamping
test case.
Cc: petri.latvala@intel.com
Signed-off-by: Mohammed Khajapasha <mohammed.khajapasha@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
|
|
After combining rapl_parse and imc_parse into a single pmu_parse, I left
the "energy-" prefixes used by rapl (but not imc) in place. Lift the
prefix to rapl_open() so that pmu_parse() does work for both rapl and
imc!
Reported-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Fixes: d0b71b967ccd ("tools/intel_gpu_top: Consolidate imc to use pmu_counter")
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>
|
|
More thorough testing shows that it is possible to get a timer report
followed by a context-switch report with the same timestamp.
v2: Add reason helper (Lionel)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
|
|
Those don't need to modify the reports they inspect.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
|
|
Follow the same pattern as rapl for imc, and consolidate everything to
work on struct pmu_counter.
v2: Combine rapl_parse/imc_parse into pmu_parse
v3: Keep the error message for RAPL not reporting Joules
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>
|
|
With integrated graphics the TDP is shared between the gpu and the cpu,
knowing the total energy consumed by the package is relevant to
understanding throttling.
v2: Tidy integration by eliminating struct rapl and improve output
formatting.
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>
|
|
Since we only expect our vblank timings to be accurate to within a
scanline, ignore any deviation between the measured interval and the
expected interval derived from the modeline if it is less than a single
scanline.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: "Ram Moon, AnandX" <anandx.ram.moon@intel.com>
Tested-by: "Ram Moon, AnandX" <anandx.ram.moon@intel.com>
|
|
Since
commit 488dac0c9237647e9b8f788b6a342595bfa40bda
Author: Yicong Yang <yangyicong@hisilicon.com>
Date: Sat Nov 21 22:17:19 2020 -0800
libfs: fix error cast of negative value in simple_attr_write()
the kernel now rejects any negative values written to debugfs, rather
than casting them to u64. Since we are accustomed to having the -1 mean
U64_MAX, perform that conversion ourselves.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
|
The last unaligned test, looks for the target character in the tail of
the buffer, where it is not expected to be found. We should be asserting
that the memchr() returned NULL.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
To ensure to cover all destination area during fast clear,
we need to round up the destination coordinates at the lower
right corner.
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Trying to read and write with a NULL-pointer buffer should fail and
report EFAULT.
v6:
* actually replace igt_require() (Petri)
v4:
* replace igt_require() by igt_assert() in "nullptr" (Petri)
* add nullptr test to CI
v3:
* put igt_describe() before igt_subtest() (Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Fbdev has some specific behavior when reading/writing near the EOF, which
the eof test checks. If at least one bytes has been written, the number
of bytes has to be returned, otherwise an error code (if any) has to be
returned, or otherwise 0 has to returned. Not all drivers get this right.
v4:
* replace igt_require() by igt_assert() in "eof" (Petri)
* add eof test to CI
v3:
* put igt_describe() before igt_subtest() (Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The tests for unaligned writes start and stop writing within pages.
v6:
* remove test from fast-feedback.testlist
v4:
* replace igt_require() by igt_assert() in "unaligned-write" (Petri)
* clarify error message about framebuffer size (Petri)
* add unaligned-write test to CI
v3:
* put igt_describe() before igt_subtest() (Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The write tests check the written buffer against the content of the mapped
framebuffer.
v4:
* replace igt_require() by iqt_assert() in "write" (Petri)
* add write test to CI
v3:
* put igt_describe() before igt_subtest() (Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The tests for unaligned reads start and stop reading within pages.
v6:
* remove test from fast-feedback.testlist
v4:
* declare pagesize as volatile
* test sysconf() success with igt_require() (Petri)
* clarify error message about frambuffer size (Petri)
* replace igt_require() by igt_assert() in "unaligned-read" (Petri)
* add unaligned-read test to CI
v3:
* put igt_describe() before igt_subtest() (Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The read tests check the read buffer against the content of the mapped
framebuffer.
v4:
* test malloc() success with igt_require()
* replace igt_require() by igt_assert() in "read" (Petri)
* add read test to CI
v3:
* put igt_describe() before igt_subtest() (Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The mapping of the framebuffer memory will be useful for read/write
tests. Move it into an igt_fixture block.
v4:
* declare map as volatile (Petri)
* test struct fb_fix_screeninfo.smem_len with igt_assert()
* remove mmap test from CI
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Move the existing tests into subgroups for testing modesetting and
accessing the framebuffer.
v5:
* test mmap() with igt_assert() (Daniel, Chris)
v4:
* declare fd as volatile (Petri)
* add info test to CI
v3:
* put igt_describe() before igt_subtest() and igt_subtest_group()
(Petri)
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
../tests/kms_fence_pin_leak.c: In function ‘__real_main207’:
../tests/kms_fence_pin_leak.c:209:11: warning: unused variable ‘ctx’ [-Wunused-variable]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
When asked to unload a module, look at all the modules that are
trying to use the module and try to unload those first.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
Hunting:
Received signal SIGSEGV.
Stack trace:
#0 [fatal_sig_handler+0xd6]
#1 [killpg+0x40]
#2 [intel_bb_add_object+0x105]
#3 [__real_main666+0xe83]
#4 [main+0x27]
#5 [__libc_start_main+0xe7]
#6 [_start+0x2a]
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
The patch proposes a method to test CCS with clear color
capability.
The test paints a solid color on primary fb and a small sprite fb.
These are cleared with fast clear feature. A crc is captured and
compared against the reference.
v2: Modify _gen9_render_copyfunc to support fast clear (Matt)
Enable fast clear bit on 3D sequence (Matt)
Add helper function to figure out clear color modifier (Matt)
v3: Remove unrelated line additions/removes
v4: Fast clear with color (Imre)
v5: Write raw 32-bit color values to register (Imre)
Require 32-bit color format
v6: Rebase to use batchbuffer without libdrm dependency
v7: Enable clear color (Nanley)
v8: Various cleanups (Imre)
v9: Splitting patch for smaller hunks (Imre)
v10: Remove switch from CCS CC modifier check (Imre)
Color map conversion (Imre)
Separate function to check CCS CC plane (Imre)
Removed left-over comment (Imre)
Replace inte_bb_reset() with intel_bb_sync() and
intel_bb_destroy() when cleaning up (Imre)
Fix logic to test CCS clear color only with
XRGB8888 format (Imre)
Move fast clear to it's own function (Imre)
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
|
|
For fast clear we haven't defined source buffer. Therefore, we only
need to initialize only destination aux pagetable.
v2: Cleaner solution proposed by Imre (Imre)
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
|
|
Enable fast clear rendering on rendercopy function.
v2: Modify _gen9_render_copyfunc to support fast clear (Matt)
Enable fast clear bit on 3D sequence (Matt)
Add helper function to figure out clear color modifier (Matt)
v3: Remove unrelated line additions/removes
v4: Fast clear with color (Imre)
v5: Write raw 32-bit color values to register (Imre)
Require 32-bit color format
v6: Rebase to use batchbuffer without libdrm dependency
v7: Enable clear color (Nanley)
v8: Various cleanups (Imre)
Modificate buffer creation (Imre)
v9: Renaming of render_copyfunc() to render_op() (Imre)
Remove igt_render_clearfunc variable (Imre)
v10: Dst buffer width division by 64 pixels and height by 16 lines (Imre)
Reorder ss10 bit fields (Imre)
Relocate buffer with clear color value enabled (Imre)
Set fast clear enable bit in correct dword (Imre)
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
|
|
We could benefit on information on what format modifier is in use
when running the test. This in mind, let's add informative string along
with the list of ccs modifiers.
Signed-off-by: Mika Kahola <mika.kahola@intel.com>
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
|
|
The target platforms do not support contexts, so don't use them (they
also don't support preemption, so this becomes a test demonstrating the
lack of pipelined fencing).
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
A slip in converting from libdrm_intel, accidentally converted a
requirement check for has-contexts into an assert.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
|
|
"%zu" for size_t
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Perform fewer iterations as on our very slow skl device, the basic test
is tasking 120s. The basic test is only a cursory scan around boundary
conditions, it is not meant to be exhaustive, just explorative.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
|
|
Added negative test to verify the different scenarios for big joiner.
In the test, modeset is done on Pipe A for a big joiner mode and
a second modeset is attempted on Pipe B which is expected to fail.
Same functionality is validated for other pipes as well.
Secondly, the reverse is tested where a modeset is done on Pipe B
and then a second big joiner modeset is attempted on Pipe A which is
expected to fail. Same functionality is validated for other pipes as well.
v2: -Rename HDISPLAY_5K to MAX_HDISPLAY_PER_PIPE. (Manasi)
-Do not assume mode[0] will be the highest mode.
Loop through the mode list to find the 8k mode. (Manasi)
-Add a subtest for verifying basic 8k modeset on all pipes. (Manasi)
v3: -Add break after big joiner output is found in basic subtest. (Manasi)
-Fix the clean up part in the invalid-modeset subtest.
v4: -Add comments in the clean up part of invalid subtest as to why only
particular fb needs to be set to NULL. (Manasi)
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
|
|
Failure is seen on CI on few platforms as one of the flips in between is
taking longer time. To fix this, added a check to assert for individual
flips only for the alternate-sync-async-flip subtest. In the
async-flip-with-page-flip-events subtest we anyway check the overall FPS
at the end, so we do not need a check for individual flips and this should
take care of some random flip taking more time in between.
Also, reduced the MIN_FLIPS_PER_FRAME from 8 to 5 based on the failure
seen in CI.
Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/2521
Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
|
|
IGT has no control of what is going to be the modeset of fbcon and as
it could set a mode that is not compatible with the feature being
tested lets check for those incompatibilities and skip the test if
needed.
Fixes: https://gitlab.freedesktop.org/drm/intel/-/issues/2327
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com>
|
|
Use intel_bb / intel_buf to remove libdrm dependency.
v2: adapted for allocator, which requires adding intel_buf
every time after reset
v3: move intel bb outside igt_fixture
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use intel_bb_copy_intel_buf instead of intel_bb_blit_copy
to make the code simplier.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Removal of bufmgr that was only set but not used.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use intel_bb / intel_buf to remove libdrm dependency.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use intel_bb / intel_buf to remove libdrm dependency.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use intel_bb / intel_buf to remove libdrm dependency. The tests
had depended on buffer reuse mechanism, so logic was changed a bit.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@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>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use intel_bb / intel_buf to remove libdrm dependency.
v2: Prepare for allocator, which requires intel_bb creation to be
outside igt_fixture block.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use intel_bb / intel_buf to remove libdrm dependency.
Signed-off-by: Dominik Grzegorzek <dominik.grzegorzek@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|