Eric Anholt | 8c64183 | 2009-03-26 17:15:11 -0700 | [diff] [blame] | 1 | This is a collection of tools for development and testing of the Intel DRM |
| 2 | driver. There are many macro-level test suites that get used against our |
| 3 | driver, including xtest, rendercheck, piglit, and oglconform, but failures |
| 4 | from those can be difficult to track down to kernel changes, and many require |
| 5 | complicated build procedures or specific testing environments to get useful |
| 6 | results. |
| 7 | |
| 8 | Thus, intel-graphics-tools was a project I started to collect some low-level |
Ben Widawsky | 3b10b7b | 2011-07-28 14:58:24 -0700 | [diff] [blame] | 9 | tools I intended to build. |
Eric Anholt | 8c64183 | 2009-03-26 17:15:11 -0700 | [diff] [blame] | 10 | |
| 11 | benchmarks/ |
| 12 | This should be a collection of useful microbenchmarks. The hope is |
| 13 | that people can use these to tune some pieces of DRM code in relevant |
| 14 | ways. |
| 15 | |
Eric Anholt | 676a109 | 2009-03-27 16:03:02 -0700 | [diff] [blame] | 16 | The benchmarks require KMS to be enabled. When run with an X Server |
| 17 | running, they must be run as root to avoid the authentication |
| 18 | requirement. |
| 19 | |
Daniel Vetter | eafdf50 | 2011-11-01 14:33:53 +0100 | [diff] [blame] | 20 | Note that a few other microbenchmarks are in tests (like gem_gtt_speed). |
| 21 | |
Eric Anholt | 8c64183 | 2009-03-26 17:15:11 -0700 | [diff] [blame] | 22 | tests/ |
| 23 | This is a set of automated tests to run against the DRM to validate |
| 24 | changes. Hopefully this can cover the relevant cases we need to |
| 25 | worry about, including backwards compatibility. |
| 26 | |
Daniel Vetter | a7433ec | 2013-08-12 14:02:03 +0200 | [diff] [blame] | 27 | Note: The old automake based testrunner had to be scraped due to |
| 28 | upstream changes which broke dynamic creation of the test list. Of |
| 29 | course it is still possible to directly run tests, even when not always |
| 30 | limiting tests to specific subtests (like piglit does). |
Daniel Vetter | eafdf50 | 2011-11-01 14:33:53 +0100 | [diff] [blame] | 31 | |
Daniel Vetter | df545c1 | 2012-12-04 10:34:46 +0100 | [diff] [blame] | 32 | The more comfortable way to run tests is with piglit. First grab piglit |
Damien Lespiau | 7e9fd56 | 2013-03-25 17:15:50 +0000 | [diff] [blame] | 33 | from: |
Daniel Vetter | df545c1 | 2012-12-04 10:34:46 +0100 | [diff] [blame] | 34 | |
| 35 | git://anongit.freedesktop.org/piglit |
| 36 | |
| 37 | and build it (no need to install anything). Then we need to link up the |
| 38 | i-g-t sources with piglit |
| 39 | |
| 40 | piglit-sources $ cd bin |
| 41 | piglit-sources/bin $ ln $i-g-t-sources igt -s |
| 42 | |
| 43 | The tests in the i-g-t sources need to have been built already. Then we |
| 44 | can run the testcases with (as usual as root, no other drm clients |
| 45 | running): |
| 46 | |
Daniel Vetter | d0f3a0d | 2012-12-04 10:42:15 +0100 | [diff] [blame] | 47 | piglit-sources # ./piglit-run.py tests/igt.tests <results-file> |
Daniel Vetter | df545c1 | 2012-12-04 10:34:46 +0100 | [diff] [blame] | 48 | |
| 49 | The testlist is built at runtime, so no need to update anything in |
| 50 | piglit when adding new tests. See |
| 51 | |
| 52 | piglit-sources $ ./piglit-run.py -h |
| 53 | |
| 54 | for some useful options. |
| 55 | |
Daniel Vetter | a7433ec | 2013-08-12 14:02:03 +0200 | [diff] [blame] | 56 | Piglit only runs a default set of tests and is useful for regression |
| 57 | testing. Other tests not run are: |
| 58 | - tests that might hang the gpu, see HANG in Makefile.am |
| 59 | - gem_stress, a stress test suite. Look at the source for all the |
| 60 | various options. |
| 61 | - testdisplay is only run in the default mode. testdisplay has tons of |
| 62 | options to test different kms functionality, again read the source for |
| 63 | the details. |
| 64 | |
Daniel Vetter | eafdf50 | 2011-11-01 14:33:53 +0100 | [diff] [blame] | 65 | lib/ |
| 66 | Common helper functions and headers used by the other tools. |
| 67 | |
| 68 | man/ |
| 69 | Manpages, unfortunately rather incomplete. |
Eric Anholt | 676a109 | 2009-03-27 16:03:02 -0700 | [diff] [blame] | 70 | |
Eric Anholt | 8c64183 | 2009-03-26 17:15:11 -0700 | [diff] [blame] | 71 | tools/ |
| 72 | This is a collection of debugging tools that had previously been |
| 73 | built with the 2D driver but not shipped. Some distros were hacking |
| 74 | up the 2D build to ship them. Instead, here's a separate package for |
| 75 | people debugging the driver. |
Eric Anholt | 6abc9b1 | 2009-03-26 18:44:13 -0700 | [diff] [blame] | 76 | |
Daniel Vetter | eafdf50 | 2011-11-01 14:33:53 +0100 | [diff] [blame] | 77 | These tools generally must be run as root, safe for the ones that just |
| 78 | decode dumps. |
Ben Widawsky | 3b10b7b | 2011-07-28 14:58:24 -0700 | [diff] [blame] | 79 | |
Ben Widawsky | d8d114b | 2013-02-07 08:35:57 -0800 | [diff] [blame] | 80 | tools/quick_dump |
| 81 | Quick dumper is a python tool built with SWIG bindings to |
| 82 | important libraries exported by the rest of the tool suite. The tool |
| 83 | itself is quite straight forward, and should also be a useful example |
| 84 | for others wishing to write python based i915 tools. |
| 85 | |
Ben Widawsky | d8d114b | 2013-02-07 08:35:57 -0800 | [diff] [blame] | 86 | Note to package maintainers: It is not recommended to package |
| 87 | this directory, as the tool is not yet designed for wide usage. If the |
| 88 | package is installed via "make install" the users will have to set |
Ben Widawsky | cf17d10 | 2013-02-19 09:53:43 -0800 | [diff] [blame] | 89 | their python library path appropriately. Use --disable-dumper |
Ben Widawsky | d8d114b | 2013-02-07 08:35:57 -0800 | [diff] [blame] | 90 | |
Ben Widawsky | 3b10b7b | 2011-07-28 14:58:24 -0700 | [diff] [blame] | 91 | debugger/ |
| 92 | This tool is to be used to do shader debugging. It acts like a |
| 93 | debug server accepting connections from debug clients such as |
| 94 | mesa. The connections is made with unix domain sockets, and at some |
| 95 | point it would be nice if this directory contained a library for |
| 96 | initiating connections with debug clients.. |
| 97 | |
| 98 | The debugger must be run as root: "sudo debugger/eudb" |