561 Commits

Author SHA1 Message Date
Matt Roper
794a9fd6bc lib/kms: Add universal plane support (v2)
Add support for universal planes.  This involves revamping the existing
plane handling a bit to allow primary & cursor planes to come from the
DRM plane list, rather than always being manually added.

v2: Don't drop fixed ordering of internal plane list.  Primary will
    always be index 0, cursor will always be last in internal plane
    list.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-04 12:04:14 +01:00
Matt Roper
82bc03f392 lib/kms: Add igt_display_try_commit2()
Add a new public API that will attempt a display commit, but will return
an error code upon failure rather than failing the IGT test.  This is
intended to allow igt tests to verify that the expected error codes are
returned to userspace when invalid requests are issued.

Note that with non-atomic programming, a single commit operation has
several potential failure points internally; the first non-zero error
code encountered will be returned immediately and no further programming
will be performed by the commit.  It is the caller's responsibility to
return to a sane state.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-04 12:04:12 +01:00
Matt Roper
1c25547d48 lib/kms: Add igt_display_commit2()
Add a new commit interface, igt_display_commit2(), that allows tests to
specify which programming API should be used to perform hardware
updates.  COMMIT_LEGACY is the only option for now, but universal
and atomic interfaces will be added as additional options in the future.

igt_display_commit() remains unchanged for existing tests that wish to
place the hardware in a specific state, but that don't care which API is
used to achieve that state.  The legacy API will be used by default for
now, but in the future we may decide to make the default API
configurable via an environment variable.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-04 12:04:01 +01:00
Matt Roper
2a3e212acc lib/kms: Track need for vblank wait locally
The need to wait for a vblank after programming is due to the way we
actually program the hardware.  Move need_wait_for_vblank out of the
pipe and into a local variable in preparation for future programming
styles (e.g., atomic pageflip) that will need different logic.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-04 12:03:45 +01:00
Matt Roper
3cc60bab46 lib/kms: Drop igt_pipe->need_set_{crtc, cursor}
The "need" flags on igt_pipe simply mirror the fb_changed field of the
primary/cursor planes.  Drop them and just use fb_changed instead.

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-07-04 12:03:26 +01:00
Daniel Vetter
13b3e5f3e0 Paritially revert "lib: add missing includes to headers"
This reinstates the #includes for lib/debug.h since without that the
shader debugger fails to build. You need to manually enable it with
./autogen.sh --enable-shader-debugger and the fail only happens when
running a clean build with

$ git clean -dfx && ./autogen.sh --enable-shader-debugger && make

I have no idea what breaks, but this restores the build.

Reported by Ben Widawsky.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-17 21:26:28 +02:00
Thomas Wood
d96490af99 lib: add missing includes to headers
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-16 20:11:57 +02:00
Thomas Wood
5874daddc4 lib: ensure igt_display_init clears the memory for the display struct
Add the call to memset that was accidentally removed in:

commit 1e9e1baba389fe498be12390ceeeacb1d141a5cf
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Thu Mar 13 17:20:05 2014 +0100

    lib/igt_kms: rip out custom verbose loggin support

    Instead just piggy-pack on top of igt_log.

    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-16 20:11:51 +02:00
Ville Syrjälä
8c1566e2d9 tools/intel_display_poller: Add a new tool that will poll various display registers
intel_poller can be used to poll various display registers
(IIR,scanline/pixel/flip/frame counter, live address, etc.).

It can be used to determine eg. at which scanline or pixel count certain
events occur.

v2: s/intel_poller/intel_display_poller/

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-13 20:39:13 +03:00
Ville Syrjälä
71874f4a52 tools: Add intel_iosf_sb_{read,write} tools
Add generic tools to poke at IOSF sideband. The user needs to
manually specify SB port as well as the register.

TODO: Maybe add symbolic names for the units? Would avoid having
to trawl the docs for the magic hex value.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-13 20:28:21 +03:00
Ville Syrjälä
a49906e266 lib/igt_debufs: Add IGT_NO_FORCEWAKE environment variable
If IGT_NO_FORCEWAKE is set, skip the forcewake open. Useful when you
want to poke at register without otherwise disturbing the GPU.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-13 20:28:20 +03:00
Ville Syrjälä
aba3582bb4 lib/igt_debugfs: Don't fail if debugfs is already mounted
Remove the igt_assert() from the debugfs mount. It will fail if debugfs
is already mounted. With the assert in place it's very annying to use
igt without i915 loaded (eg. to dump BIOS configured registers).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-06-13 20:28:20 +03:00
Daniel Vetter
87042d671f NEWS: Mention igt.cocci
And also pimp the spatch file itself with usage hints.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:14:13 +02:00
Daniel Vetter
2347e6d21e lib: Introduce igt_fail_on/_f
I've yet again totally screwed things up (this time automated with
cocci even, but not yet pushed luckily). So finally add a new version
for easier conversion and adjust the cocci script.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:14:13 +02:00
Daniel Vetter
46811c849a lib/igt.cocci: Also add rule to use igt_warn_on_f
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:12:42 +02:00
Daniel Vetter
9eb9345f99 lib/igt.cocci: Convert abort() to igt_fail
abort should only be used for internal library checks - using
abort() we get a "crash" result, using igt_fail we get "fail"
in piglit.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:12:42 +02:00
Daniel Vetter
bde52d1a08 lib/igt.cocci: Conversion to igt logging
Also update old hunks to match on igt logging instead of fprintf.

v2: Don't forget about perror.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:12:36 +02:00
Daniel Vetter
6b73a9a288 tests: Don't use stderr for informational messages
These should go to stdout instead. The next patch will clean this up
with cocci, so no change from fprintf(stdout, to printf( here.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 18:09:05 +02:00
Daniel Vetter
66b31b6e19 lib: add igt.cocci
Small start but useful to collect refactorings/simplifications for
common igt patterns. Please add more if you stumble over some so that
we can occasionally run this to clean up the tests.

I haven't figured out yet how to do the assert_cmpint->assert_eq
transformation.

Run this with

spatch --sp-file lib/igt.cocci --in-place tests/*.c

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 11:17:22 +02:00
Daniel Vetter
3448b5ad4b lib/igt_core: Add igt_assert_eq
Suggested by Chris Wilson. Not yet rolled out since I'm trying to use
cocci for this.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-13 11:17:04 +02:00
Thomas Wood
52a3a2e205 lib: various documentation fixes
Fix some documentation comments and mark some struct members private.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Thomas Wood
1e5c8780d0 lib: remove /** from comments that are not API documentation
These comments are not gtk-doc comments, so replacing /** with /*
prevents any gtk-doc warnings.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-06-12 10:12:13 +01:00
Daniel Vetter
618aca1fb9 lib/intel_os: Spelling fix
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-12 09:04:45 +02:00
Chris Wilson
210d20f413 API docs for intel_check_memory()
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-10 14:29:27 +01:00
Rodrigo Vivi
82ad15fd10 Fix make distclean by fixing includes of version.h
Actually only the igt_core was breaking the make distcheck,
but let's make it consistent and let the code cleaner.

Credits-to: Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>
2014-06-09 11:17:20 -07:00
Chris Wilson
b428f24f7c lib: Add debug to memory limits checks
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-06-05 13:34:02 +01:00
Daniel Vetter
5141b21f91 lib/igt_debugfs: Fix spelling docs
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-05 10:29:17 +02:00
Kenneth Graunke
badb026ae0 rendercopy/gen8: Also emit 3DSTATE_WM_DEPTH_STENCIL.
rendercopy was failing to emit 3DSTATE_WM_DEPTH_STENCIL, which is a new
packet on Broadwell.  Mesa emits this packet.

This appears to fix various tests on a fresh boot, when Mesa has never
run.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78890
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78891
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78935
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78936
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78937
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=78938
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
Tested-by: Guo Jinxian <jinxianx.guo@intel.com>
Signed-off-by: Ben Widawsky <benjamin.widawsky@intel.com>
2014-06-04 10:54:38 -07:00
Ville Syrjälä
0f906083f2 lib/intel_iosf: add second phy support
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
2014-06-03 22:19:42 +03:00
Mika Kuoppala
d60d4c80e5 tools/null_state_gen: generate null render state
Generate valid (null) render state for each gen. Output
it as a c source file with batch and relocations.

v2: noinst and vs_start fixed for BDW GT3 (Damien Lespiau)

Acked-by: Damien Lespiau <damien.lespiau@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-06-03 13:49:23 +03:00
Chris Wilson
321273ff76 Factor in kernel object overhead when checking available memory for tests
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-05-28 09:05:57 +01:00
Imre Deak
a6eaa29271 igt/quickdump: vlv: dump FLISDSI regs too
Signed-off-by: Imre Deak <imre.deak@intel.com>
2014-05-19 20:13:15 +03:00
Imre Deak
ad08999794 igt/intel_iosf: rename IOSF sideband opcodes according to the spec
These opcodes are not specific for an endpoint, but are the same for all
endpoints. So rename them accordingly, using the name the VLV2 sideband
HAS uses. Also move the macros to the .c file, since they aren't used
anywhere else.

Signed-off-by: Imre Deak <imre.deak@intel.com>
2014-05-19 20:13:15 +03:00
Oscar Mateo
5bdd4d9b5e lib/igt_fb: igt_create_fb_with_bo_size
Useful for testing bigger/smaller fb-wrapped buffer objects.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-16 17:45:14 +03:00
Daniel Vetter
bd521b493e lib/igt_aux: Extract runtime pm helpers from pm_pc8
I want to use them elsewhere ...

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-15 14:25:47 +02:00
Daniel Vetter
831eb21197 lib/igt_core: Fixup docs with symbolic exit codes
Conflict between me and Thomas pushing patches in parallel.

Cc: Thomas Wood <thomas.wood@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-14 15:34:00 +02:00
Thomas Wood
17eb062661 lib: add exit status defines
Add defines for success, skip and timeout exit statuses.

Suggested-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-05-14 12:33:02 +01:00
Thomas Wood
c03d58595e lib: set a timeout when reading crc values
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
2014-05-14 12:33:02 +01:00
Thomas Wood
d8e5313a27 lib: add igt_set_timeout
Add a function to stop and fail a test after the specified number of
seconds have elapsed.

Signed-off-by: Thomas Wood <thomas.wood@intel.com>
Acked-by: Damien Lespiau <damien.lespiau@intel.com>
2014-05-14 12:33:01 +01:00
Daniel Vetter
126b8ba72f lib/igt_core: Fix type on igt_log doc
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-13 12:28:26 +02:00
Daniel Vetter
1503d17cc5 lib/igt_core: Document testrunner interface a bit
Also fix up one gtkdoc fumble in igt_fb. We should use symbolic
defines if possible instead of just listening the magic 0, 77, 78
values for exit codes, but that's a separate patch.

Cc: tim.gore@intel.com
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-13 11:29:34 +02:00
Tim Gore
41cbe36bba intel-gpu-tools: Build tests needing cairo if ANDROID_HAS_CAIRO=1
Until now the tests that depended on libcairo were simply
skipped in the android build. Now that I have a cairo port
working, build these cairo dependent tests if ANDROID_HAS_CAIRO
is set to 1 in the environment.
For information on building cairo for IGT on Android see the
wiki at:

https://securewiki.ith.intel.com/display/GFXCore/IGT+Test+Suite+on+Android

Signed-off-by: Tim Gore <tim.gore@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-12 18:56:31 +02:00
Chris Wilson
4bd9fe6e34 gem_alive: A utility to see if the driver or GPU has hung 2014-05-05 11:09:30 +01:00
Daniel Vetter
29ee36f259 lib: extract kmstest_set_connector_dpms
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-04-30 18:07:58 +02:00
Ville Syrjälä
a40f091d81 Add Cherryview PCI IDs
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-04-29 18:39:12 +03:00
Daniel Vetter
e36c896a71 test: Fixup for the previous patch
Oops, failed to git add.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-04-25 17:57:22 +02:00
Chris Wilson
b918a3ba15 Reset errno to 0 after success
errno is only valid after a syscall wrapper (e.g. ioctl()) reports an
error. However, we report the last errno value as a part of the
igt_assert() output and so we display spurious values such as:

Test requirement not met in function gem_require_ring, file ioctl_wrappers.c:802:
Last errno: 11, Resource temporarily unavailable
Test requirement: (!((((intel_get_drm_devid(fd)) == 0x0102 || ...

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-04-25 07:45:56 +01:00
Tvrtko Ursulin
dc14bf455d tests: Extract ALIGN macro into a common header
Makes for a little bit less code duplication, especially since
it will be used from more callers in the future.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Reviewed-by: Brad Volkin <bradley.d.volkin@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-04-24 13:49:19 +01:00
Ville Syrjälä
78e4c2b449 lib: Fix potential out of bounds access in ring stop code
The subsequet code expects the read() to not have filled the entire
buffer, and yet we allow it to do so. Reduce the size passed to read()
by 1 to make the code sane.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-04-16 19:21:17 +03:00
Ville Syrjälä
4aa2c102b9 lib: Fix assert failure in ring stop code
The assert in igt_set_stop_rings() is a bit bogus. Suppsoedly it was
meant to assure that the caller always restores the rings to running
state after stopping them. But in its current form it will trigger
any time someone calls the function and the rings were already stopped.
So you can't even restore the rings to running state w/o the assert
triggering.

Fix it up so that it'll ignore the current ring state when we're trying
to restore the rings back to running state.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-04-16 19:21:17 +03:00