We need to create fbs of a single color in a few places. Time to
abstract that out to a helper function.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
We were displaying the value of fb_id (0), when the actual interesting
thing about this call it that it'll just down the pipe.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
So we can easily cycle through them in tests without knowing too many
internal details about how igt_display_t organize its data.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
It'd be nice to have symbolic names for planes instead of using an index
in igt_output_get_plane().
We also namespace the enum to not conflict with anyone.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
The goals here are:
- Reduce duplicated code in each KMS test
- Provide an API that looks more like what we want for atomic
modesets. The hope is then that it'll be easy to switch, at
run-time, between the "legacy" path and atomic modesets, keeping
the same API for tests.
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
We need to first check whether we'll even run the testcase before
deciding to print a premature SKIP/FAIL. Without this and global
skipped resulted in superflous output when running only one testcase.
References: https://bugs.freedesktop.org/show_bug.cgi?id=74100
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Store the result of set_vt_mode as a signed value so that errors can be
caught correctly.
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
igt_wait_helper compliments igt_stop_helper and is used when helper
processes are expected to exit naturally.
Signed-off-by: Jeff McGee <jeff.mcgee@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
I got kms_flip in hung state with the backtrace below, while the parent process
waiting for the signal helper to exit. It was quite easy to reproduce the bug
by running
kms_flip --run-subtest=flip-vs-dpms-off-vs-modeset
With the change I couldn't reproduce it.
TODO: audit/fix other signal handlers with signal-unsafe functions
0 0x00007f9a1362018b in ?? () from /lib/x86_64-linux-gnu/libc.so.6
1 0x00007f9a1359df81 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
2 0x00007f9a1359b6cf in ?? () from /lib/x86_64-linux-gnu/libc.so.6
3 0x00007f9a13628eb6 in __vasprintf_chk () from /lib/x86_64-linux-gnu/libc.so.6
4 0x00007f9a13628e72 in __asprintf_chk () from /lib/x86_64-linux-gnu/libc.so.6
5 0x000000000040a4a2 in asprintf (__fmt=0x417441 "/dev/dri/card%u", __ptr=0x7fff1a972c08)
at /usr/include/x86_64-linux-gnu/bits/stdio2.h:178
6 drm_get_card () at drmtest.c:190
7 0x000000000040a54a in __drm_open_any () at drmtest.c:229
8 0x000000000040a846 in quiescent_gpu_at_exit (sig=<optimized out>) at drmtest.c:281
9 0x0000000000408759 in call_exit_handlers (sig=3) at drmtest.c:1519
10 fatal_sig_handler (sig=3) at drmtest.c:1543
11 <signal handler called>
12 0x00007f9a13596770 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
13 0x00007f9a135d8f3f in fork () from /lib/x86_64-linux-gnu/libc.so.6
14 0x000000000040b3af in __igt_fork_helper (proc=0x61d8cc <signal_helper>) at drmtest.c:1199
15 0x000000000040b4ce in igt_fork_signal_helper () at drmtest.c:751
16 0x0000000000404167 in main (argc=<optimized out>, argv=<optimized out>) at kms_flip.c:1533
v2:
- can't use snprintf as that's also signal-unsafe, so just use a dup'ed fd (Chris,Daniel)
Signed-off-by: Imre Deak <imre.deak@intel.com>
Instead of recompiling the lib directory for every tool or tests we can just
re-use the static library. This also has the nice side effect of fixing the
android "mm" command to allow android users to only rebuild the local changes
in either the test or tools directory.
Signed-off-by: Rafael Barbalho <rafael.barbalho@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
The lib directory is used by all the tests & tools so it should really be
the place where the generate files are created.
Signed-off-by: Rafael Barbalho <rafael.barbalho@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
The lib directory should really be compiled as a static library on its own
and be re-used by any tests or tools that require it.
Signed-off-by: Rafael Barbalho <rafael.barbalho@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Not all versions of Android have the mmap64 call, thus a suitable alternative
must be called.
Signed-off-by: Rafael Barbalho <rafael.barbalho@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
When printing the errno, it is important that we capture the user errno
before we make any library calls - as they may alter the value.
References: https://bugs.freedesktop.org/show_bug.cgi?id=74007
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This makes it a bit more like the kernel, so we can go poke at DPIO and
other IOSF regs a bit more easily.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
The GEN6_INSTDONE_1 and GEN6_INSTDONE_2 registers are just the old
INSTDONE_I965 and INSTDONE_1 registers but renamed. Let's use the old
names (this is what the kernel does).
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This is the only place where they are used and we've even started using
1 << n constants with gen 7.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
That's how the registers are named in the kernel defines.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
cairo_t is the short lived drawing context, whereas cairo_surface_t is
the heavyweight object that persists and is also tied to underlying GEM
objects. So make the kmstest API reflect the different weights and fix
the lifetime and underlying object reference leaks.
Based on the fix by Paulo Zanoni.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
We don't want depth/stencil fast clears or HiZ resolves; we want normal
drawing. Without this, the pixel pipeline doesn't work.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: Damien Lespiau <damien.lespiau@intel.com>
Provide two arguments version, and verbose, which allow printing from an
arbitrary igt test. It will show system information (from build time,
not runtime), as well as the git SHA being used.
This will help reduce errors when people try to reproduce problems.
As an example if I want to verify someone is running the correct version
of a test, I could ask them to do:
bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --verbose
gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)
Time to exec x 1: 35.000µs (ring=render)
Time to exec x 2: 28.000µs (ring=render)
Time to exec x 4: 20.000µs (ring=render)
Time to exec x 8: 14.625µs (ring=render)
Time to exec x 16: 11.188µs (ring=render)
Time to exec x 32: 11.125µs (ring=render)
Time to exec x 64: 10.328µs (ring=render)
Time to exec x 128: 10.172µs (ring=render)
Time to exec x 256: 10.234µs (ring=render)
Time to exec x 512: 10.232µs (ring=render)
Time to exec x 1024: 10.121µs (ring=render)
Time to exec x 2048: 10.151µs (ring=render)
Time to exec x 4096: 11.474µs (ring=render)
Time to exec x 8192: 9.432µs (ring=render)
Time to exec x 16384: 6.003µs (ring=render)
Time to exec x 32768: 5.029µs (ring=render)
Time to exec x 65536: 4.206µs (ring=render)
Time to exec x 131072: 3.630µs (ring=render)
Subtest render: SUCCESS
--verbose is provided for completeness, but doesn't seem too useful at
the moement.
bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --version
gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)
I've put version.h in the root directory so that any subdir can access
it. I've added the tests usage since it's immediately useful, and done
easily via Daniels igt infrastructure work.
v2:
- Always print the version number.
- We want to print uname at runtime.
- Also prefix the i-g-t release version.
Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
I did the same change in the Kernel a few months ago. This should help
not getting confused about which bit does what.
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
It's what callers expect - pipe_crc_new is the function where
we pass a potential failure back to callers.
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
No need to duplicate this all over the place.
Reviewed-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Otherwise it may result in GPU hang
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
Otherwise the stale data in the buffer
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
v2: Fixed the source register used for the send with EOT
Fixed the posted destination operand for the send with EOT
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
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>