v2: Fixed the source register used for the send with EOT
Fixed the posted destination operand for the send with EOT
v3: Workaround: Insert MEDIA_STATE_FLUSH after MEDIA_OBJECT.
Fixed the cache agent used in media_block_write message
Set Instruction Buffer size Modify Enable to 1, otherwise it may result in GPU hang
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
It is to check whether media pipeline on render ring works. Codes
are copied and modified from the rendercopy case which uses 3D pipeline.
However media pipeline is simpler than 3D pipeline and there is few changes
between gen6,gen7 and gen8
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Since we now always want a length for this command, and we've created a
non-length variant, remove the #define to prevent further foot shooting.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
NOTE: Some subtests are still failing, but I haven't found the bug yet.
At least this should help QA meanwhile.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
NOTE: Some subtests are still failing, but I haven't found the bug yet.
At least this should help QA meanwhile.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
I've opted to not use the PIPE_CONTROL w/a for now. I am unclear if it
is actually required (the test does pass).
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
It didn't pan out at all since atm we don't evict context objects. But
maybe it's useful for when that happens.
v2: Actually test eviction. Took a while to figure that one out.
And indeed the testcase now fails because we don't evict the previous
context as we should.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This exercise the bug fixed in
commit 1020dc6990168a5081ffad620c440e220f05b460
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Tue Oct 29 08:55:57 2013 +0000
drm: Do not drop root privileges for a fancier younger process
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
quick_dump.py execute permission was accidentally lost in:
commit d56697233699844db9262a9a056b62b24b69dd39
Author: Mengdong Lin <mengdong.lin@intel.com>
Date: Sun Aug 25 23:07:22 2013 -0400
quick_dump/bdw: support Broadwell in device auto-detection
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
The extra parameter is for future platform.
Signed-off-by: Chon Ming Lee <chon.ming.lee@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
DPIO name still using old name. Change it according to the driver name.
Signed-off-by: Chon Ming Lee <chon.ming.lee@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
This triggers use after free oops on request->batch_obj when
going through the rings and setting reset status on requests,
after a gpu hang.
v2: Streamlined the test and added comments (Daniel)
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
to not run out of filedescs as some tests call gem_quiescent_gpu
directly.
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Various C library implementations have various races with regards
to caching getpid() or TID inside pthread_kill() implementations.
For example see clone(2) glibc man page and pthread_kill
Bionic C library source.
Work around that by making sure correct PID/TGID and TID values
are retrieved from the kernel when re-raising the signal. It
can be delivered immediately after the clone system call while C
library cached copies have not yet been updated.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
We do not have GLib there so it does not build.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Tests depend on assertions being enabled since they can, and do,
contain actual test steps. They are also mandatory for ensuring
sane test case behaviour.
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Android apparently compiles with NDEBUG. Which is strongly advised
against, since the big pile of asserts mostly check correct usage of
the helper code in testcases.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This is the one that already works in libdrm, so don't disappoint people
coming with expectations.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
kms_fbc_crc will perform various write operations to the scanout buffer
whilc FBC is enabled. CRC checks will be used to make sure the
modifcations to scanout buffer are detected.
The operations include:
- page flip
- GTT mmap
- CPU mmap
- blit
- rendercopy
- context switch + rendercopy
- combination of a page flip and each operation listed above
v2: Use gem_sw_finish instead of drmModeDirtyFB after CPU access
v3: Drop pwrite tests, call gem_bo_busy() after rendering, drop
set_domain() calls after mmap access, wait for 2 vblanks
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
rendercopy does the batch buffer flush internally, so if we want
to use it with multiple contexts, we need to pass the context
in from caller.
v2: Modify rendercopy_gen8 as well
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
If a subtest fails, it'll leave the pipe CRC file open, which will
prevent subsequent subtests from opening the file. Make sure the file
is cloesed before trying to open it again.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Inspired by the recent pile of tests for the CS, which doesn't split
up the tests into per-ring subtests.
Cc: bradley.d.volkin@intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This one was missing. For some reason we never really detected it on
our test suite. I checked the Kernel source and now we should be fine.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Instead of creating a new FB every time we need one, create a cache of
FBs and reuse whenever possible. That means we'll create at most two
FBs, and reuse them hundreds and hundreds of times.
The kmstest_paint_test_pattern function takes about 1-2 seconds to
run, and we'll avoid it whenever we reuse the FB.
This makes the time taken to run the modeset-lpsp-stress subtest go
from 2:29 to 1:29.
A full "time ./pm_pc8 --quick" goes from 8:14 to 6:27.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
If we want to actually reach PC8+ states, we need to properly
configure all the devices on the system to allow this. This function
will try to setup the things we know we need, but won't scream in case
anything fails: we don't know which devices are present on your
machine, so we can't really expect anything, just try to help with the
more common problems.
Another reason for this commit is that I got tired of having to
readjust the runtime PM policies every time I reboot my machine.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Getting global reset count needs to be tested with root and
non root access.
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
To make driver report a simulated hang in dmesg.
Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
For BDW+, there BATCH_BUFFER_START is 3 * 32bits in length and
length needs to be encoded into the opcode.
Suggested-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>