<div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 3 Oct 2019 at 23:07, Arkadiusz Hiler <<a href="mailto:arkadiusz.hiler@intel.com">arkadiusz.hiler@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">* reorder sections so we have a more newbie friendly reading flow:<br>
  requirements -> building -> running<br>
<br>
* add links to documentation<br>
<br>
* drop mentions of autotools<br>
<br>
* drop piglit references<br>
<br>
* don't list dependencies, just point to Dockerfiles<br>
<br>
* mention IGT containers<br>
<br>
Cc: Petri Latvala <<a href="mailto:petri.latvala@intel.com" target="_blank">petri.latvala@intel.com</a>><br>
Signed-off-by: Arkadiusz Hiler <<a href="mailto:arkadiusz.hiler@intel.com" target="_blank">arkadiusz.hiler@intel.com</a>><br>
---<br>
 README.md | 280 ++++++++++++++++++++++--------------------------------<br>
 1 file changed, 112 insertions(+), 168 deletions(-)<br>
<br>
diff --git a/README.md b/README.md<br>
index b8c4c5a8..b295dc3e 100644<br>
--- a/README.md<br>
+++ b/README.md<br>
@@ -1,6 +1,7 @@<br>
 IGT GPU Tools<br>
 =============<br>
<br>
+<br>
 Description<br>
 -----------<br>
<br>
@@ -12,173 +13,31 @@ complicated build procedures or specific testing environments to get useful<br>
 results. Therefore, IGT GPU Tools includes low-level tools and tests<br>
 specifically for development and testing of the DRM Drivers.<br>
<br>
-IGT GPU Tools is split into several sections:<br>
-<br>
-**benchmarks/**<br>
-<br>
-This is a collection of useful microbenchmarks that can be used to tune<br>
-DRM code in relevant ways.<br>
-<br>
-The benchmarks require KMS to be enabled.  When run with an X Server<br>
-running, they must be run as root to avoid the authentication<br>
-requirement.<br>
-<br>
-Note that a few other microbenchmarks are in tests (like gem_gtt_speed).<br>
-<br>
-**tests/**<br>
-<br>
-This is a set of automated tests to run against the DRM to validate<br>
-changes. Many of the tests have subtests, which can be listed by using<br>
-the --list-subtests command line option and then run using the<br>
---run-subtest option. If --run-subtest is not used, all subtests will<br>
-be run. Some tests have futher options and these are detailed by using<br>
-the --help option.<br>
-<br>
-The test suite can be run using the run-tests.sh script available in<br>
-the scripts directory. Piglit is used to run the tests and can either<br>
-be installed from your distribution (if available), or can be<br>
-downloaded locally for use with the script by running:<br>
-<br>
-    ./scripts/run-tests.sh -d<br>
-<br>
-run-tests.sh has options for filtering and excluding tests from test<br>
-runs:<br>
-<br>
-  -t <regex>      only include tests that match the regular expression<br>
-  -x <regex>      exclude tests that match the regular expression<br>
-<br>
-Useful patterns for test filtering are described in the API<br>
-documentation and the full list of tests and subtests can be produced<br>
-by passing -l to the run-tests.sh script.<br>
-<br>
-Results are written to a JSON file and an HTML summary can also be<br>
-created by passing -s to the run-tests.sh script. Further options are<br>
-are detailed by using the -h option.<br>
-<br>
-<br>
-If not using the script, piglit can be obtained from:<br>
-<br>
-    git://<a href="http://anongit.freedesktop.org/piglit" rel="noreferrer" target="_blank">anongit.freedesktop.org/piglit</a><br>
-<br>
-There is no need to build and install piglit if it is only going to be<br>
-used for running i-g-t tests.<br>
-<br>
-Set the IGT_TEST_ROOT environment variable to point to the tests<br>
-directory, or set the path key in the "igt" section of piglit.conf to<br>
-the igt-gpu-tools root directory.<br>
-<br>
-The tests in the i-g-t sources need to have been built already. Then we<br>
-can run the testcases with (as usual as root, no other drm clients<br>
-running):<br>
-<br>
-    piglit-sources # ./piglit run igt <results-file><br>
-<br>
-The testlist is built at runtime, so no need to update anything in<br>
-piglit when adding new tests. See<br>
-<br>
-    piglit-sources $ ./piglit run -h<br>
-<br>
-for some useful options.<br>
-<br>
-Piglit only runs a default set of tests and is useful for regression<br>
-testing. Other tests not run are:<br>
-- tests that might hang the gpu, see HANG in Makefile.am<br>
-- gem_stress, a stress test suite. Look at the source for all the<br>
-  various options.<br>
-- testdisplay is only run in the default mode. testdisplay has tons of<br>
-  options to test different kms functionality, again read the source for<br>
-  the details.<br>
-<br>
-**lib/**<br>
-<br>
-Common helper functions and headers used by the other tools.<br>
-<br>
-**man/**<br>
-<br>
-Manpages, unfortunately rather incomplete.<br>
-<br>
-**tools/**<br>
-<br>
-This is a collection of debugging tools that had previously been<br>
-built with the 2D driver but not shipped.  Some distros were hacking<br>
-up the 2D build to ship them.  Instead, here's a separate package for<br>
-people debugging the driver.<br>
-<br>
-These tools generally must be run as root, except for the ones that just<br>
-decode dumps.<br>
-<br>
-**docs/**<br>
-<br>
-Contains the automatically generated igt-gpu-tools libraries<br>
-reference documentation in docs/reference/. You need to have the<br>
-gtk-doc tools installed and use the "--enable-gtk-doc" configure flag<br>
-to generate this API documentation.<br>
-<br>
-To regenerate the html files when updating documentation, use:<br>
-<br>
-    $ ninja -C build igt-gpu-tools-doc<br>
-<br>
-If you've added/changed/removed a symbol or anything else that changes<br>
-the overall structure or indexes, this needs to be reflected in<br>
-igt-gpu-tools-sections.txt. Entirely new sections will also need to be<br>
-added to igt-gpu-tools-docs.xml in the appropriate place.<br>
-<br>
-**include/drm-uapi**<br>
-<br>
-Imported DRM uapi headers from airlied's drm-next branch.<br>
-These should be updated all together by executing "make<br>
-headers_install" from that branch of the kernel and then<br>
-copying the resulting ./usr/include/drm/*.h in and committing<br>
-with a note of which commit on airlied's branch was used to<br>
-generate them.<br>
+Generated documentation for the latest master is published under<br>
+<<a href="https://drm.pages.freedesktop.org/igt-gpu-tools/" rel="noreferrer" target="_blank">https://drm.pages.freedesktop.org/igt-gpu-tools/</a>>.<br>
<br>
<br>
 Requirements<br>
 ------------<br>
<br>
-This is a non-exhaustive list of package dependencies required for building<br>
-the default configuration (package names may vary):<br>
+See `Dockerfiles.*` for up-to-date list of packages names in Fedora and<br></blockquote><div><br></div><div>s/Dockerfiles/Dockerfile/</div><div>s/packages/package/<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
+Debian.<br>
<br>
-       bison<br>
-       gtk-doc-tools<br>
-       flex<br>
-       libcairo2-dev<br>
-       libdrm-dev<br>
-       libkmod-dev<br>
-       libpixman-1-dev<br>
-       libpciaccess-dev<br>
-       libprocps-dev<br>
-       libudev-dev<br>
-       libunwind-dev<br>
-       liblzma-dev<br>
-       libdw-dev<br>
-       python-docutils<br>
-       x11proto-dri2-dev<br>
-       xutils-dev<br>
+If your distribution packages IGT you can also use your package manager to<br>
+install the dependencies, e.g.:<br>
<br>
-The following dependencies are required for building chamelium support<br>
-(package names may vary):<br>
+    # dnf builddep igt-gpu-tools<br>
<br>
-       libxmlrpc-core-c3-dev<br>
-       libudev-dev<br>
-       libglib2.0-dev<br>
-       libgsl-dev<br>
+But keep in mind that this may be slightly outdated and miss some<br>
+recently added dependencies for building the current master.<br>
<br>
-The following dependencies are requires for building audio support<br>
-(package names may vary):<br>
<br>
-       libasound2-dev<br>
-       libgsl-dev<br>
+Building<br>
+--------<br>
<br>
-See Dockerfiles.* for package names in different distributions.<br>
+Oneliner to get started:<br>
<br>
-Meson build system support<br>
---------------------------<br>
-<br>
-Currently we support both meson and automake as build systems, but meson is the<br>
-recommended choice. Oneliner to get started:<br>
-<br>
-    $ mkdir build && meson build && cd build && ninja<br>
+    $ meson build && ninja -C build<br>
<br>
 Note that meson insist on separate build directories from the source tree.<br>
<br>
@@ -186,26 +45,111 @@ Running selfchecks for lib/tests and tests/ is done with<br>
<br></blockquote><div><br></div><div>In v2, whilst you're here, can you also amend the prior line to properly format the two folder</div><div>references to be consistent with the rest of this README:</div><div><br></div><div>  Running selfchecks for `lib/tests` and `tests/` is done with</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
     $ ninja -C build test<br>
<br>
-Note that this doesn't actually run the testcases in tests/: scripts/run-tests.sh<br>
-should continue to be used for that.<br>
-<br>
 Documentation is built using<br>
<br>
     $ ninja -C build igt-gpu-tools-doc<br>
<br>
-Note that this needs meson v0.47 or later, earlier versions of meson do not<br>
-track depencies correctly for the documentation build and need:<br>
<br>
-    $ ninja -C build && ninja -C build igt-gpu-tools-doc<br>
+Running Tests<br>
+-------------<br>
<br>
-Note that there's a setup script similar to ./autogen.sh which creates a<br>
-compatibility Makefile with a few useful default targets:<br>
+In `tests/` you can find a set of automated tests to run against the DRM<br>
+drivers to validate your changes. Many of the tests have subtests, which can<br>
+be listed by using the `--list-subtests` command line option and then run<br>
+using the --run-subtest option. If `--run-subtest` is not used, all subtests<br>
+will be run. Some tests have further options and these are detailed by using<br>
+the `--help` option.<br>
<br>
-    $ ./meson.sh [make-arguments]<br>
+Most of the test must be run as a root and with no X or Wayland compositor<br>
+running.<br>
<br>
-Releases for maintainers<br>
-------------------------<br>
+    # build/tests/core_auth<br>
+    IGT-Version: 1.24 (x86_64) (Linux: 5.3.0 x86_64)<br>
+    Starting subtest: getclient-simple<br>
+    Subtest getclient-simple: SUCCESS (0.001s)<br>
+    Starting subtest: getclient-master-drop<br>
+    Subtest getclient-master-drop: SUCCESS (0.000s)<br>
+    Starting subtest: basic-auth<br>
+    Subtest basic-auth: SUCCESS (0.000s)<br>
+    Starting subtest: many-magics<br>
+    Subtest many-magics: SUCCESS (0.000s)<br>
<br>
-(1.14)<br>
+    # build/tests/core_auth --run-subtest getclient-simple<br>
+    IGT-Version: 1.24 (x86_64) (Linux: 5.3.0 x86_64)<br>
+    Starting subtest: getclient-simple<br>
+    Subtest getclient-simple: SUCCESS (0.000s)<br>
<br>
-<a href="http://www.x.org/wiki/Development/Documentation/ReleaseHOWTO/" rel="noreferrer" target="_blank">http://www.x.org/wiki/Development/Documentation/ReleaseHOWTO/</a><br>
+<br>
+The test suite can be run using the `run-tests.sh` script available in the<br>
+`scripts/` directory. To use it make sure that `igt_runner` is built, e.g.:<br>
+<br>
+    meson -Drunner=enabled build && ninja -C build<br>
+<br>
+`run-tests.sh` has options for filtering and excluding tests from test<br>
+runs:<br>
+<br>
+    -t <regex>      only include tests that match the regular expression<br>
+    -x <regex>      exclude tests that match the regular expression<br>
+<br>
+Useful patterns for test filtering are described in the [API<br>
+documentation][API] and the full list of tests and subtests can be produced<br>
+by passing `-l` to the `run-tests.sh` script. Further options are are<br>
+detailed by using the `-h` option.<br>
+<br>
+Results are written to a JSON file.<br>
+<br>
+[API]: <a href="https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html" rel="noreferrer" target="_blank">https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html</a><br>
+<br>
+<br>
+IGT Containers<br>
+--------------<br>
+<br>
+IGT is packed into nifty docker-compatible containers for ease of execution<br>
+and to avoid having to install all the dependencies. You can use<br>
+podman/docker to to run it on your system.<br>
+<br>
+Oneliner to get you started with the latest master:<br>
+<br>
+    # podman run --rm --priviledged <a href="http://registry.freedesktop.org/drm/igt-gpu-tools/igt:master" rel="noreferrer" target="_blank">registry.freedesktop.org/drm/igt-gpu-tools/igt:master</a><br>
+<br>
+<br>
+Other Things<br>
+------------<br>
+<br>
+### `benchmarks/`<br>
+<br>
+A collection of useful microbenchmarks that can be used to tune DRM code.<br>
+<br>
+The benchmarks require KMS to be enabled.  When run with an X Server<br>
+running, they must be run as root to avoid the authentication<br>
+requirement.<br>
+<br>
+Note that a few other microbenchmarks are in tests (e.g. `gem_gtt_speed`).<br>
+<br>
+### `tools/`<br>
+<br>
+A collection of debugging tools. They generally must be run as root, except<br>
+for the ones that just decode dumps.<br>
+<br>
+### `docs/`<br>
+<br>
+Contains the infrastracture to automatically generate igt-gpu-tools libraries<br></blockquote><div><br></div><div>s/infrastracture/infrastructure/</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
+reference documentation. You need to have the gtk-doc tools installed.<br>
+<br>
+To regenerate the html files when updating documentation, use:<br>
+<br>
+    $ ninja -C build igt-gpu-tools-doc<br>
+<br>
+If you've added/changed/removed a symbol or anything else that changes the<br>
+overall structure or indexes you need to reflect the change in<br>
+`igt-gpu-tools-sections.txt`. Entirely new sections also need to be added to<br>
+`igt-gpu-tools-docs.xml` in the appropriate place.<br>
+<br>
+### `include/drm-uapi/`<br>
+<br>
+Imported DRM uapi headers from airlied's drm-next branch.<br>
+<br>
+These should be updated all together by executing `make headers_install` from<br>
+that branch of the kernel and then copying the resulting<br>
+`./usr/include/drm/*.h` in and committing with a note of which exact commit<br>
+from the airlied's branch was used to generate them.<br></blockquote><div><br></div><div>s/the//<br></div><div><br></div><div>With these couple of small nits fixed, this gets my:</div><div>Reviewed-by: Rhys Kidd <<a href="mailto:rhyskidd@gmail.com">rhyskidd@gmail.com</a>></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- <br>
2.21.0<br>
<br>
_______________________________________________<br>
igt-dev mailing list<br>
<a href="mailto:igt-dev@lists.freedesktop.org" target="_blank">igt-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/igt-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/igt-dev</a></blockquote></div></div>