Age | Commit message (Collapse) | Author |
|
Recent patch #7763349a9a87.. renamed gem_concurrent_blit.c
to gem_concurrent.c and then added entries to Makefile.am
to make two identical executeables (but with different
names) from this source file. This executeable changes its
behaviour based on argv[0]. But, this has broken the
Android build, which does not use autotools.
This patch instead renames the source file to match
the name of one executable (gem_concurrent_all.c) and
creates a second source file which simply #includes the
first. The Makefile.am entries are also removed.
This restores the simple test.c -> test executeable
relationship seen in the rest of IGT and allows the
Android build system to work without parsing Makfile.am
or having to incorporate a special workaround for this
test.
Signed-off-by: Tim Gore <tim.gore@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
|
|
Apparently nobody else likes testing and debugging GEM coherency issues.
However, this also means that QA is skipping these vital tests. Split
out a set of canaries into igt/gem_concurrent_blit and keep the rest in
igt/gem_concurrent_all.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89497
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Suggested by Lionel Landwerlin as a means to emulate video decode
workloads.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Since we are considering implementing read-read optimisations for mixed
engine workloads, make sure that we at least have a few tests that check
for coherency when doing so.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
The choice is to either move the igt_require from the buffer allocation
(and allow the allocation to fail) inside the igt_fixture, or move the
buffer allocation to the subtest. Moving it to the subtest has the
advantage of ensuring that every test has the same initial state (no
chance of leaking state across tests) and speeding up running a single
subtest.
Note this is necessary in order to run igt/gem_concurrent_blit on older
kernels, otherwise the requirement for mmap(wc) causes us to skip the
majority of tests.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Also move forcewake and stop_rings code from igt_debugfs to igt_gt
since it fits better. And move the hang injection fork helpers from
igt_aux to igt_gt, too.
Also push the intel_gen call into igt_hang_ring while at it.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Yeah, historically grown but we should try to be somewhat consistent.
It helps with filtering testcases.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
We stick to the overall prefix even for magic require functions.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Align with common igt library style:
- Push the igt_require into the function.
- Push the intel_gen into the function.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Thrown up my brain's parser for a moment ;-)
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
Our tooling doesn't cope with () in the testnames (piglit becomes all
confused apparently) and the naming convention says to use "blt" and
"render".
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88220
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88349
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
|
|
After setting up the copy operations, add a hanging batch. This should
mean that we complete the copy and the compare then races against the
GEM reset. Hopefully, this will catch driver bugs where the target
object is no longer accessible after the hang.
Note: hang injection is disabled until the required kernel interface is
completed. But there are useful additional tests here...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Add more test descriptions based on exiting comments.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
|
|
Due to the nature of the test, we can be reasonably sure that it is
either all copied or not. So we can sacrificing testing the entire
buffer for the expected value in order to speed up the test by only
testing along the diagonal.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=84354
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Otherwise the test infrastructure throws a fit.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83420
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Use the existing allocation, saves having to make fresh allocations in
the innermost loop - trimming code and potential failure paths.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
As before, we also want to race against access through the fence
registers. This overlaps slightly with gem_set_tiling_vs_blt, but the
different access pattern should make it useful.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Similar to the previous commit, we also want to check that every
pipeline is serialised correctly. This extends the test to include
render copies as well as blits.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
In future, we may allow reordering of GPU batches. This implements a
simple race detector by extending the current CPU-vs-GPU checks.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
All the cases that simply dump some debug information and couldn't be
converted to some of the fancier macros.
Some information output removed when it's redundant with the subtest
status.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
And shovel all the various helpers in there.
Also move igt_set_vt_graphics_mode to igt_kms.h since the function is
implemented in igt_kms.c. And it fits better. I kinda missed this in
the prep work.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
With the header cleanup we can now give this header a suitable name,
since it now really only contains register access and other I/O
functions and assorted definitions.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Brought a few missing headers to light in ioctl_wrappers.h, too.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Instead of a width/height combination. Since I've been lazy with the
math this now only accepts page-aligned copy operations, but that's
all we need really.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Note that we use twice the number of buffers, and so we need to restrict
num_buffers appropriately to fit within RAM.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72255
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
|
Limit working set size also with available ram.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72255
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
In the past new testcases with subtest often forgot to add the call to
igt_exit at the end of their main() function. That is now caught with
a bit more obnoxious asserts, but it's still a nuissance.
This little igt_main macro takes care of that (and also of calling the
subtest machinery initialization code correctly).
If no one objects I'll roll this out for all the simple cases (i.e.
those tests that don't have additional argv parsing on top of the
subtest machinery).
v2: Roll it out across the board.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Oops, this shouldn't have been committed ...
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68830
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Making sure that we correctly collect the exit codes from all children
is a bit a hassle. So add another magic igt codeblock for easy forking
and joining.
Note that children are (currently at least) not allowed to call igt_skip.
Add an assert to enforce this.
v2:
- Properly propagate the exit code.
- Fix the segfault.
- Add a child int and num_children paramter to the magic codeblock as
suggested by Chris Wilson.
- Don't dump noise into stdout when a child thread fails, the parent
will do that for us already.
v3: Now with some docs.
v4: Fixup igt_waitchildren to properly reset state so it can be used
again.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
This reverts commit 912a7d855600aadb937517ec5bab26bfd9b8953d.
Now fixed for real!
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Apparently the simple changes introduced in
commit 78865847f9fae7e590960f9836f2ec8b611a190e
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Mon Aug 19 07:23:49 2013 +0200
Commit: Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Mon Aug 19 08:09:25 2013 +0200
lib/drmtest: skip fixtures after an igt_skip
pushed the stack space requirement for run_modes over some magic limit
(I guess where the strack grow logic starts to fail, but I didn't
check). Fix this by moving the data into .bss.
Also add some asserts to check that fixtures aren't abused while at
it (i.e. the useful parts of my debug printf/assert craze).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68299
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
|
|
As the children use the parent's fd, the kernel only has a single filp
for everyone. Therefore we cannot rely on the process termination
reaping the buffers we allocate for the children.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
|
|
Apparently not all machines have more than 4GiB of RAM available.
Spoilsports.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68169
|
|
Just a tiny wrapper to protect global test setup/teardown code when
just listing subtests. Rolling this out over all tests with subtests
should allow us to generate the testlist with piglit as an
unpriviledged user on a non-intel system.
The aim here is to make our QA team happy who currently suffers from
this. Even more so for the prime tests since you need a system with
intel _and_ nouveau gpus to just be able to list tests.
Exemplary conversion with gem_concurrent_blt.c
Fixture is the same name other test suites like googletest use for
setup/teardown code used by multiple tests.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
This is mostly important to get the SKIP reporting right, but I've
found a few stragglers that wanted to get converted over to the igt
result reporting completely.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Functional programming ftw!
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
|
Too much copy&pasting isn't good.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|