Commit Graph

310 Commits

Author SHA1 Message Date
Eugeni Dodonov 431fe7803d intel_gpu_top: initialize monitoring statistics at startup
This patch initializes the last_stats[] for registers prior to starting
the monitoring itself. This way, the first measure will already contain
the difference from the previous value instead of non-initialized value.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
2011-09-05 19:13:58 -03:00
Eugeni Dodonov 4b0a15e45d intel_gpu_tool: initial support for non-screen output
This patch adds initial support for non-stdio output, to be used for
non-interactive monitoring.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
2011-09-05 19:11:49 -03:00
Eugeni Dodonov 09e4b0cd26 intel_gpu_top: suport command line parameters and variable samples per
second

This patch adds support for getopt, and adds two default parameters to it:
-h to show usage notes; and -s to allow user to define number of samples
to acquire per second.

Manpage documentation is also adjusted accordingly.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
2011-09-05 19:11:45 -03:00
Eugeni Dodonov 6194c75c8f intel_gpu_top: account for time spent in syscalls
This allows intel_gpu_top to properly account for time spent inside system
calls. Effectively, with previous implementation, intel_gpu_top could
spent longer than 1s between consecutive measures. This attempts to
minimize the extra time spent while polling for data.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
2011-09-05 16:18:11 -03:00
Jesse Barnes 922214f986 tests: add store dword tests
Add a couple of simple store dword tests to test memory coherence.

gem_storedw_loop simply executes a batch that continually stores an
incremented value to a target buffer object, checking the results after
each batch completes.

gem_storedw_batches_loop does the same thing, but creates a new command
batch buffer for each iteration, which can exercise the buffer creation
code.  This test is based on one from Andrzej Kacprowski from Intel.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2011-08-12 12:51:34 -07:00
Hai Lan 6857a1af81 testdisplay: for tiled mode test, the height should be aligned
Signed-off-by: Hai Lan <hai.lan@intel.com>
2011-08-12 11:44:03 -07:00
Eric Anholt e40c9c7faf Add missing copyright info to intel_decode.c 2011-08-01 10:40:20 -07:00
Ben Widawsky 3b10b7bd5a tools: readme addition for shader debugging 2011-07-28 15:09:47 -07:00
Ben Widawsky d0a7e0ab5a tools/range handing: forgot the register map file :( 2011-07-28 15:07:36 -07:00
Ben Widawsky 62873796c4 intel-gpu-tools/debugging: shader debugger
high level summary of the files:
  * debug_rdata - get current state from debug registers. Helpful
    when developing the debugger, and could serve some purpose in the
    future.
  * eudb - the debugger itself
  * eviction_macro - generate the proper macro to flush the EU render
    cache until I get control flow working
  * pre_cpp - an evaluating c preprocesser like thing, to be used before
    cpp
  * sr - the system routine, exception handler which runs on the EU
  * test - a very basic test system routine
  * debug.h
2011-07-28 14:26:57 -07:00
Ben Widawsky e39b13d7e4 intel-gpu-tools/debugging: add important debug regs
Cc: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-28 13:52:28 -07:00
Ben Widawsky c82c1d6846 intel-gpu-tools/forcewaked: sample forcewake app
This app is required for debug features which seem to (undocumented)
reset themselves if/when the GT goes to sleep.

It is also useful for those doing general debugging or profiling from
userspace when they do not wish to have the GT sleep.

v2: made forcewaked more daemon-like

Cc: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-28 13:48:51 -07:00
Ben Widawsky abd7038e5a intel-gpu-tools/range handling: register range handling
Hooks to allow safe accesses from userspace. Can revert to old behavior
by using unsafe access.
2011-07-28 13:48:51 -07:00
Ben Widawsky cac8f8b526 forcewake: Add mmio code to do proper forcewake stuff for gen6 2011-07-28 13:48:51 -07:00
Chris Wilson 294927c601 Add intel_backlight
A trivial tool to adjust the backlight registers (gen5+ only atm).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-20 20:41:54 +01:00
Chris Wilson 30ffcc34ea intel_decode: Handle a few gen7 blocks 2011-07-20 20:41:54 +01:00
Daniel Vetter 74670c7bb9 gem_stress: ducttaping mandatory
In other news: We've been missing a unmapping_mapping_range somewhere
in the kernel. But lazy me never came around to digging up the real
cause.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-07-17 23:33:27 +02:00
Hai Lan 6cc92bcbc5 testdisplay: Test the first mode if there is no preferred mode.
For a TV device, there  might be no preferred mode. In this case,
we can test the first mode.

Signed-off-by: Hai Lan <hai.lan@intel.com>
2011-07-13 14:05:54 +08:00
Chris Wilson 25b25b907d tests/gem_vmap_blits: Fix typo
Why, oh why, do these only become obvious after pushing upstream?

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-08 15:02:18 +01:00
Chris Wilson 4c0176e497 intel_reg_dumper: Slightly tidy the reporting of pipe configs
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-08 14:55:36 +01:00
Chris Wilson a0a0b6ab34 Add a test case for coherency of vmaps
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-08 14:54:32 +01:00
Chris Wilson 75f7e81fbc gem_stress: Assert we have no pending ops when using the CPU
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-08 14:04:24 +01:00
Chris Wilson f40d54e132 gem_gtt_speed: Add option for variable buffer size 2011-07-08 14:03:28 +01:00
Chris Wilson 4227da8c3c gem_stress: Add an option to test handling of signals
As signals cause the syscalls to be interrupted, we often need to clean
up partial state before returning to userspace. Often a source of
unamusing bugs, so encourage gem_stress to provoke them.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-02 09:13:20 +01:00
Chris Wilson 8908055da6 tests: Add an exercise for zero-length buffers
Triggers an OOPS with dmar enabled currently.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-23 14:06:45 +01:00
Chris Wilson 9de433a471 tests: Add a simple exercise of GTT mmaps
Test copying between 2 mappings and reading/writing from and to.

References: https://bugs.freedesktop.org/show_bug.cgi?id=38115
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-20 13:55:36 +01:00
Daniel Vetter 336f85dafb gem_stress: some stats about incoherencies
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-13 22:02:52 +02:00
Daniel Vetter 1007956680 gem_stress: option to disable render copyfunc check
Too noisy - which is an another way of saying too broken :(

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-13 20:30:31 +02:00
Daniel Vetter 5b253cee37 gem_stress: option for tile_size
I want to know how large these corruptions can get!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-13 20:30:30 +02:00
Daniel Vetter c0f34338e7 gem_stress: option to set tiles per buffer
gem_stress -p1 is much more evil than gem_stress -c1, it also manages
to tear appart untiled workloads!

Now duct-taping over it still works (--apply-duct-tape) ... hm.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-13 13:18:35 +02:00
Daniel Vetter 6daa883fa3 gem_stress: option to continue despite failures
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-13 00:35:01 +02:00
Daniel Vetter 9649dd7ef0 gem_stress: option to override the number of rounds to complete
gem_stress -c 1

... sometimes takes a while to hit a problem.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-13 00:58:45 +02:00
Chris Wilson e0532d4eb0 scripts: Add throttle.py
Parses a trace.dat and works out how long each throttle was and how many
batches retired within that period (and their average duration).

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-08 12:16:23 +01:00
Jesse Barnes e235f93288 testdisplay: automatically enable TEST_PLANES if possible
Just look for the ADDFB2 ioctl and enable the new code if it exists.
2011-06-07 13:32:37 -07:00
Jesse Barnes 8969b839b5 testdisplay: fix error output if test pattern draw fails 2011-06-07 13:29:01 -07:00
Jesse Barnes b707feb9d5 testdisplay: add tiled buffer test support
Useful for testing tiled vs linear framebuffers.
2011-06-07 13:29:01 -07:00
Jesse Barnes 7230c01421 testdisplay: add overlay plane test option
Enumerate available extra planes and try to use one on each CRTC we enable.
2011-06-07 13:29:01 -07:00
Lan, Hai 3ddc799fbf testdisplay: fix possible_crtcs check so LVDS works
When using testdisplay on GM965 and Pineview with LVDS, it will fail to
set a mode because the first unused crtc can't be used for LVDS.  So
check the possible_crtcs to make sure the crtc can be used.

Signed-off-by: Hai Lan <hai.lan@intel.com>
2011-06-07 08:55:25 -07:00
Daniel Vetter 1095a825c0 gem_stress: avoid division by 0
Without this height would be 16 with the minimal buffer size.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-06 20:16:35 +02:00
Daniel Vetter fde66f9bf4 gem_stress: disable fence storm when only using untiled buffers
This explains why gem_stress -u worked beforehand - the rendercpy
was not actually used!

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-06 20:15:44 +02:00
Daniel Vetter 7250328bb8 gem_stress: round max_dimension down to the next pot
Creates funny rounding problems otherwise.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2011-06-06 18:59:54 +02:00
Chris Wilson 3d66d913d9 gem_stress: trim buffer sizes to fit into 3D pipeline
Remember the 3D pipeline is much more restricted than the BLT engine,
and we were feeding it buffers much larger than either the
render engine or the sampler could manager.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 22:21:54 +01:00
Chris Wilson 2933547eb0 gem_stress: cpu maps force tiling to be disabled, so fix the printf
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 21:36:06 +01:00
Chris Wilson bfa23b47a5 gem_stress: Add extra passes to intial render copyfunc verification
...and allow for cpu maps!
2011-06-05 21:34:07 +01:00
Chris Wilson e7119c2e3b test/gen3_mixed_blits: Remember that the BLT engine cannot handle Y-tiling
...even through a fence that can.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 19:10:14 +01:00
Chris Wilson 6f6cd81913 test/gen3_mixed_blits: Alternately use fence regs for the render copies
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 18:05:28 +01:00
Chris Wilson 853d729598 test/gen3_mixed_blits: Acutally use fences for BLT
Gah, in my excitement of reproducing the failure reported by
gem_stress, I missed using fenced relocs for the BLT.

Fortunately, it doesn't affect the presence of the error.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 17:45:28 +01:00
Chris Wilson aadfcdfd4e decode: Fix segmentation fault
The decode for A8 is incomplete and died with a segfault. First hide the
segfault, latter fix the pretty printing.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 18:13:18 +01:00
Chris Wilson f5e63b12a5 test: Add more gen3 render blitters
... and we have a winner: gen3_mixed_blits reproduces the issue Daniel
Vetter originally found. It seems clear that we have some incoherence
between the RENDER and BLT units on gen3 that no amount of MI_FLUSH can
hide. Hmmm....

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 18:12:47 +01:00
Chris Wilson 20b69039e8 test: Exercise gen3 render copies
gem_stress is unhappy with tiled render copies on gen3. This is a simple
little test to ensure that a set of pure copies with a working set
larger than the aperture are handled correctly.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-05 12:10:11 +01:00