summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)AuthorFilesLines
2020-06-08python: Stop using cElementTreeArkadiusz Hiler1-1/+1
It got removed in Python 3.9 and ever since Python 3.3 it's: from xml.etree.ElementTree import * Link: https://docs.python.org/3.9/whatsnew/3.9.html#removed Issue: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/86#note_520308 Cc: Petri Latvala <petri.latvala@intel.com> Cc: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-01-23lib/igt_collection: Adding combinatorics facilityZbigniew Kempczyński1-0/+1
Dynamic tests gives us new method to create tests depending on the hardware/software capabilities. To check coverage some tests require verification over some set of objects/data. To make life easier with combinatorics this patch introduces igt_collection. Currently it supports iterating over set to get subsets, combinations, variations with and without repetitions. Code has some limitation (set/subset cannot be larger than 16 elements, what is enough for most cases). Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Petri Latvala <petri.latvala@intel.com>
2020-01-17lib/intel_bufops: Introduce buffer operationsZbigniew Kempczyński1-0/+1
Different GENs supports different tile surfaces. Older GENs have HW fences to allow X / Y surface tiling / detiling. Newer GENs have to tile / detile such surface in software. To make test developer life easier this code adds buffer operations (short buf_ops) to use appropriate functions allowing copying linear buffer to BO and from BO to linear buffer regardless GPU generation and tiling/swizzling within BO. For GENs having fences support preference is to use them if they are available (X / Y tiling is probed on buf_ops initialization). Note: on Gen2 code supports only HW tiling at the moment. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2019-12-04Add device selection in IGTZbigniew Kempczyński1-0/+7
New IGT command line argument --device, IGT_DEVICE enviroment and .igtrc Common::Device were added to allow selecting device using device selection API. See generated docs for device selection and lsgpu for more details on filters. NOTE: IGT_FORCE_DRIVER still works if no filter is selected. We may want to deprecate it later. NOTE2: This does not work with tests that open 2 or more devices (e.g. kms_prime). The core is capable of doing multiple filtering passes but we need to figure out how we want *open*() functions to expose this capability. v2 (Arek): * remove functions acting on igt_device_card * use only a single filter v3 (Arek): * typos, misspellings (Petri) * add notes on IGT_FORCE_DRIVER and opening 2 or more devices Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-12-04Introduce device selection APIZbigniew Kempczyński1-0/+1
The new device selection API based on scanning DRM subsystem using udev. It provides a set of functions for enumerating and filtering available graphic cards to get the corresponding /dev/dri nodes. For details check the top level documentation in igt_device_scan.c To be used in lsgpu tool and internally by drm_open_driver*() functions (see the following patches). v2 (Arek): * drop most of the glib code in favor of igt_list and plain C * make sysfs paths handling non-special - introduce sys: filter * drop multiple filter_* structs in favor of just two: - filter_class for defining filters types (e.g. sys:) - filter for "filter instance" - the data provided by the user * promote many macros to real functions for type safety * rename devs->devs to devs->all * rename devs->view to devs->filtered * don't expose "chip" (e.g. DRIVER_ANY) as it's unreadable as int * update docs to reflect those changes * move open functions that open igt_device_card to this patch * remove platform filter class for now * use only a single filter v3 (Arek): * fix some memory leaks and setting to NULL after free() (Zbigniew) * fix even more missing free() (Petri) * use the new igt_list API * fix null pointer dereference on filter->class Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-11-20docs: Remove defunct sectionsArkadiusz Hiler3-21/+0
* chamelium was renamed to kms_chamelium and is now part of the KMS Tests section * GVT tests were removed. v2: don't remove the API docs (Petri) Fixes: 8809638e8e42 ("tests: Rename chamelium to kms_chamelium.") Fixes: 8781fd89a63e ("igt: Remove gvt_basic") Reported-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-11-12lib/igt_list: Update, clean-up and document igt_listArkadiusz Hiler1-0/+1
Our list was something between Wayland and Linux Kernel list implementations, right in the uncanny valley. On top of that it falsely claimed that it's a straight copy from the Wayland project. Let's make our impl more akin to the kernel one to ease the cognitive dissonance for the developers working on all those projects. This patch: * mimics the current kernel list interface * separates IGT helpers in the source files * adds brief explanation and code example for igt-doc * introduces igt_list.c as static inlines are not visible in the docs v2: mimic the kernel instead of wayland (Chris) - _head suffix for the sentinel/link struct - _entry_ in iterator names that go over the elements v3: I forgot to merge this in time and there was another call site that had to be converted in gem_spin_batch.c Cc: Petri Latvala <petri.latvala@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2019-10-09meson: Remove redundant install params from configure_filePetri Latvala1-1/+1
The 'install' param for configure_file was added in meson 0.50, and does nothing before that. When using meson >= 0.50 using the install param gives a warning if the minimum required meson version is lower than 0.50, because of reasons. 'install : false' is the default anyway when install_dir param is not set, so remove the redundant and erroneous install param usages. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-08-15docs/chamelium: document port auto-discoverySimon Ser1-7/+3
Explicit Chamelium port mappings are now optional. Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-08-15docs/chamelium: indent .igtrc code blockSimon Ser1-39/+39
This makes it easier to tell the code block apart from the rest of the document. Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2019-07-08docs: Embed subtest descriptions in the documentationArkadiusz Hiler3-47/+115
This rewrites generate_description_xml in Python, so that we generate properly escaped XML. The switch also makes the code more manageable. Changes in the generated docbook: 1. subtests are not simply listed anymore, they are now another (sub)section 2. subtests are now linkable, e.g. docs/igt-kms-tests.html#kms_hdmi_inject@inject-4k 3. subtest's section now includes output of --describe Python is required already by gtk-doc and we are not using anything other than the standard library. v2: keep the part of the subtest name after the last match (Simon) explicitly require python3 (Petri) v3: make sure that the tail of the subtest name after the last keyword match is included (Simon) Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Simon Ser <simon.ser@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Simon Ser <simon.ser@intel.com>
2019-06-12docs/chamelium: add quick-start commands and network setupSimon Ser1-1/+11
This saves people from searching how to use the serial console again, and how to configure network. Additionally, the /etc/network/interfaces file uses an old Debian-like format so `address 192.168.1.42/24` won't work, one needs to explicitly write down the network mask. Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2019-05-23docs/meson: Remove the hax for meson < 0.47Arkadiusz Hiler1-30/+11
With updated minimum required version to 0.47.0 it is no longer needed. Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2019-05-13docs/chamelium: add manual xmlrpc usageSimon Ser1-0/+10
For debugging purposes, it's useful to be able to send manual XML-RPC calls to the Chamelium. This commit adds an example call and links to the utility and the Chamelium API interface docs. Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2019-04-25tests/kms_chamelium: add dp-audio testSimon Ser2-51/+28
This new test ensures DisplayPort audio works by using the Chamelium. It enables the DisplayPort output and sends an audio signal containing a set of frequencies we choose to all HDMI/DisplayPort audio devices. It starts recording audio on the Chamelium device and uses the stream server to retrieve captured audio pages. It then checks that the capture audio signal contains the frequencies we sent, and only those, by computing a FFT. A new library has been added to libigt to communicate with the stream server. It implements a simple custom TCP protocol. In case the test fails, a WAV file with the captured data is saved on disk. Right now the test has a few limitations: - Only the first channel is checked - IGT only generates audio with a single sampling rate (48 KHz) - Audio data is not captured in real-time These limitations will be lifted in future patches. PulseAudio must not run during the tests since ALSA is used directly. To ensure this, edit /etc/pulse/client.conf and add `autospawn=no`. Then run `pulseaudio --kill`. This commit deletes the existing audio tests. They weren't run and required an exotic configuration (HDMI audio splitter, dummy HDMI sink and a line-in port on the DUT). This patch also changes lib/igt_audio to use uint16_t instead of short. The rationale is: - The standard says a short is at least 16 bit wide, but a short can be larger (in practice it won't happen, but better use types correctly) - It makes it clearer that the audio format is S16_LE, since "16" is in the type name. This patch depends on the following Chameleon bugs: - https://crbug.com/948060 - https://crbug.com/950857 Signed-off-by: Simon Ser <simon.ser@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2019-02-15lib: Drop IGT_EXIT_TIMEOUTDaniel Vetter1-5/+0
We use the timeout status for when the runner had to kill a testcase, which indicates a more sever issue than an operation failing that we expected to complete within seconds. Since it's unused, drop it. Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-12-13autoconf: Drop gtkdoc supportDaniel Vetter3-225/+0
It's a huge kludge (doesn't track dependencies correctly) and compared to the meson one, real slow. Throw it out. Acked-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-11-16tests: Move drv_ tests to i915 directoryArkadiusz Hiler3-12/+12
The drv_ tests are i915 specific, so let's move them to i915 directory and change the binary prefix to i915_. Additionally, while we at moving stuff around, let's rename module_reload to module_load and do the following cleanup with the subtests: basic-reload -> reload basic-no-display -> reload-no-display basic-reload-inject -> reload-with-fault-injection Cc: Martin Peres <martin.peres@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Martin Peres <martin.peres@linux.intel.com>
2018-10-23tests: Introduce i915 directoryArkadiusz Hiler1-6/+4
We can already move all the tests with distinct prefixes: gem_, gen3_ and i915_. pm_ and drv_ tests will follow in batches, so we can do the adjustments in the reporting/filtering layer of the CI system. v2: Fix test-list.txt generation with meson v3: Fix docs build (Petri) Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Martin Peres <martin.peres@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Tested-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
2018-08-15docs: fix typo sharding->sharingLucas De Marchi1-1/+1
I was grepping for shard as the tests run on CI, but the only occurrence was this one which seems to be a typo since it's about prime tests. Fixes: 76bce773 ("docs: Update documentation generation with missing entries") Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-07-27docs/chamelium: Update sections of a network and a config file in detailGwan-gyeong Mun1-5/+40
It updates a network setting between a Target PC and a Chamelium. And it adds informations of Chamelium-specific keys for DRM connector and Chamelium Port ID in detail. And it adds "Running the Chamelium With IGT" section. v2: Martin Peres * Change FrameDumpPath to /root/ from /tmp/ on IGT configuration. * Add physical locations of DP1 and DP2 ports on Chamelium Board. Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2018-07-27docs/chamelium: Change chamelium.c to kms_chamelium.cGwan-gyeong Mun1-1/+1
This commit (8809638e8e42488aac701066d7ced164854c6c9c) renamed chamelium to kms_chamelium. Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com>
2018-06-20gtkdoc: Remove the build_by_default hackDaniel Vetter1-15/+34
meson 0.45 properly supports generated content_files. Except for the minor issue that we're hitting an internal bug in meson. I've made a pull request for that https://github.com/mesonbuild/meson/pull/3189 which has now been addressed in commit c1f275bfa644beafab9f8572351d4b64d61c148b Author: Nirbheek Chauhan <nirbheek@centricular.com> Date: Sun May 6 20:09:49 2018 +0530 gnome.gtkdoc: Allow passing file objects as xml_files If we pass a source files() object, we will look for it in the build directory, which is wrong. If we pass a build files() object (from configure_file()), we will find it in the build directory, and then try to copy it on top of itself in gtkdochelper.py getting a SameFileError. Add a test for it, and also properly iterate custom target outputs when adding to content files. Downside of this all is that we'd need to up the meson requirements to something like 0.47, which isn't even released yet :-/ v2: Rebase and also add version requirement. v3: I figured out how to make this work with a meson version check! v4: Remove stray hunk (Petri). Cc: Eric Anholt <eric@anholt.net> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2018-05-16igt: Drop Intel from the name in docs and pathsArkadiusz Hiler11-34/+34
This is just a simple change to reflect the actual state. No rewording yet, just a simple substitution in most visible places - docs, README and paths. There are probably some leftovers here and there, but we can let them be for now, this is already well overdue. v2: fixed couple of obvious leftovers pointed out by Petri Cc: Petri Latvala <petri.latvala@intel.com> Cc: Daniel Vetter <daniel.vetter@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Acked-by: Harry Wentland <harry.wentland@amd.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2018-01-11Revert "build: make meson more official" damageDaniel Vetter1-3/+3
This reverts the meson.build changes from commit 07c331773dd3bc4dadb164bcd9bc06dbd01de3b6. Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2018-01-11build: make meson more officialDaniel Vetter1-3/+3
I also noticed that meson.sh doesn't set the prefix for patch submission. Fix that (even thought hopefully real soon igt will move to its own list). v2: Review from Petri. Cc: Petri Latvala <petri.latvala@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2017-12-08lib: Print other clients when DRM_SET_MASTER failsChris Wilson1-0/+1
It looks like there are some rogue processes running in CI that prevent DRM_MASTER from being obtained. Dump the list of clients on failure to make it more obvious what is being left behind. v2: Fix up gtkdocs, meson build References: https://bugs.freedesktop.org/show_bug.cgi?id=104157 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-12-05meson: gtkdoc supportDaniel Vetter5-0/+150
Bunch of neat improvements: - xml generates correctly depend upon the test binaries - no need to re-run autogen.sh when new chapters/functions get added, all handed by meson Still one issue: - the gtkdoc target doesn't depend upon the custom_target yet, hacked around using build_by_default: true This is an issue known to upstream already: https://github.com/mesonbuild/meson/issues/2148 v2: Bump meson version to 0.42, since that's the first release which adds the build dir when running the gtkdoc tools, and hence allows including generated files. v2: - Undo the bump, it's only needed for generated source files. Other generated files as input should work with 0.40 already. - Generate version.xml from version.xml.in, which allows us to keep the &version; entity. v3: Add github issue link. v4: - Resurrect lost KEYWORDS (Petri) - Fix issue when running with a clean build, files() doesn't work on generate files (Petri). Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-10-19lib/i915: Move submission related helpers to lib/i915/gem_submissionMichał Winiarski1-0/+1
Since I accidentally broke the build for some, by putting the pretty printer for submission inside ifdef HAVE_PROCPS, it's time to move the whole thing into lib/i915 while fixing this mistake. Let's also rename the pretty printer and add a doc to it as well as the section. Fixes: f6dfe556659f ("lib: Extract helpers for determining submission method") Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-10-17lib/i915: Move context related helpers to lib/i915/gem_contextMichał Winiarski1-0/+1
We'd like to make ioctl_wrappers a bit thinner, and we plan to add new helpers in the following patch. Let's move context related helpers before adding more content. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-10-17lib/i915: Extract helpers for determining scheduler capabilitiesMichał Winiarski1-0/+5
Couple of tests are using either determining scheduler capabilities or pretty printing. Let's move those to helpers in lib. We can also keep the value obtained from getparam static. v2: Break the trend of expanding ioctl_wrappers Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Katarzyna Dec <katarzyna.dec@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Katarzyna Dec <katarzyna.dec@intel.com> Acked-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-10-10lib: Add some syncobj helpers (v2)Jason Ekstrand1-0/+1
[airlied: added some initial gtk-doc for the helper library.] Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
2017-10-02docs: Distribute audio.txt and chamelium.txtPetri Latvala1-0/+5
Signed-off-by: Petri Latvala <petri.latvala@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2017-08-30docs/chamelium: Explain that the Chamelium should only target one DUTPaul Kocialkowski1-0/+6
This adds an explanation about why the Chamelium should only be connected to one target device at once to the in-tree documentation. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> [with one small style change] Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-08-28docs: Add user documentation about audio supportPaul Kocialkowski1-0/+45
This introduces plain-text documentation about the audio test, aimed at users who wish to setup and run the audio tests. Given the contents of this documentation, it felt more relevant to make it part of the tree instead of the API reference. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-08-28docs: Add user and developer documentation about Chamelium supportPaul Kocialkowski1-0/+153
This introduces plain-text documentation about the Chamelium aimed at users who wish to deploy the platform, as well as developers who wish to work on improving IGT support for it. Given the contents of this documentation, it felt more relevant to make it part of the tree instead of the API reference. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> (with one small typo fixed) Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-08-21lib: Add ALSA library with dedicated helpersPaul Kocialkowski1-0/+1
This introduces an ALSA library, with dedicated helpers for handling playback and capture. It handles ALSA device identification and configuration as well as a run loop with callback mechanisms for feeding output data and handling input data. This library paves the way for testing audio going through display connectors, such as HDMI. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-08-21lib: Add audio library with dedicated helpersPaul Kocialkowski1-0/+1
This introduces an audio library, with dedicated helpers for both generating signals and detecting peak frequencies in a signal. This library paves the way for testing audio going through display connectors, such as HDMI. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Lyude Paul <lyude@redhat.com>
2017-07-24docs: Update documentation generation with missing entriesPaul Kocialkowski3-34/+139
This adds missing entries for documentation generation, both for tests and the API reference. The list of tests is made complete and ordered alphabetically, with modified descriptions for consistency. More files are added to the API reference, with a minimalistic description block added to them when it was missing. Signed-off-by: Paul Kocialkowski <paul.kocialkowski@linux.intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2017-01-26Add support for hotplug testing with the ChameliumLyude1-0/+1
For the purpose of testing things such as hotplugging and bad monitors, the ChromeOS team ended up designing a neat little device known as the Chamelium. More information on this can be found here: https://www.chromium.org/chromium-os/testing/chamelium This adds support for a couple of things to intel-gpu-tools: - igt library functions for connecting to udev and monitoring it for hotplug events, loosely based off of the unfinished hotplugging implementation in testdisplay - Library functions for controlling the chamelium in tests using xmlrpc. A couple of RPC calls were ommitted here, mainly because they didn't seem very useful for our needs (yet) - A set of functions for doing CRC checks and frame comparisons in tests - A set of basic tests using the Chamelium library. Cc: Tomeu Vizoso <tomeu@tomeuvizoso.net> Signed-off-by: Lyude <lyude@redhat.com> Changes since v1: - Don't try to guess connector mappings, have the user specify them manually using a configuration file - Open DRM fd using DRIVER_ANY, not DRIVER_INTEL - Lower the hotplug timeout a little bit, since 30 seconds was leftover from debugging these tests anyway - Don't try to keep track of the original state of the chamelium ports, and just leave them plugged in after each run. This makes more sense to me, since I'd imagine in automated testing setups using chameliums that all of the extra monitors will probably be provided by the Chamelium to begin with, so keeping them plugged in would make sure tests running afterwards that require >1 monitor don't get skipped. - Add wait_for_connector() to the chamelium tests. After some more testing, I found that depending on the system some tests would throw false negatives due to us not waiting long enough for the system to detect that we connected something to it. This mainly happened with VGA connectors, since their lack of HPD makes them take significantly longer for the hardware to notice. wait_for_connector() fixes this by continually reprobing the status of the desired connector (without relying on a hpd event happening, since that might never come) until we get what we want, or we time out and fail. - Use kmstest_get_property() for retrieving EDIDs instead of doing it by hand - Don't hardcode PIPE_A for bringing up the display, use kmstest to find an appropriate CRTC to use. Changes since v2: - Fix incorrect usage of the list helpers when recording new EDIDs - Add missing documentation - Make sure documentation actually appears - Since we finally got video capture working, add CRC functions and fix the ones we couldn't actually test before - In the exit handler, reset the xmlrpc env so we can properly reset the Chamelium even after an RPC error - Make sure compiling without Chamelium support still works Changes since v3: - Change the config file name from .igt_chamelium_rc to .igtrc - Remove chamelium global context - Get rid of define_common_connector_tests() - Get rid of connector list, expose connectors as opaque objects and provide helpers for accessing their attributes - Get rid of configure.ac option for Chamelium - Add tests for CRC functions - Add frame dumping functions + tests - Add FSM handling to chamelium_rpc() - Use LIBUDEV_LIBS in automake, not UDEV_LIBS - Documentation fixes - Improve debugging output some more - Remove skip_without_suspend_support, we no longer need to check for suspend support before calling things - Remove unnessecary malloc() checks with igt_assert() - Don't use igt_require in chamelium_init, leave it up to the caller whether or not to abort when failing to initialize the chamelium - Use igt_assert_eq for making assertions about connector's statuses - Define suspend/resume delay for tests as constant
2016-12-01lib/igt_kmod: New library to support driver loading/unloading and additional ↵Marius Vlad1-0/+1
helpers. lib/igt_aux: Added igt_pkill and igt_lsof helper. lib/igt_kmod: Added load/unload kmod helpers. v7: - document the case where leaving stray fd from drm_open_driver() might fail reloading the driver. - list also current opened files from /dev/dri in case we could not unload the driver. - convert igt_info to igt_warn (Chris Wilson) - added KMOD_|PROCPS CFLAGS (Chris Wilson) v6: - include latest modifications from tests/drv_module_reload: display all loaded modules and list information about opened files by processes (Petri Latvala) v5: - added igt_i915_driver_{load/unload}. - added kick_snd_hda_intel() to match current tests/drv_module_reload_basic and integrated into igt_i915_driver_load/unload. - added gtk-doc section for lib/igt_kmod v4: - decided to split libkmod helpers into their own file as there's another user lib/igt_gvt or tests/gvt_basic. - fixed some gtk-doc documentation. v3: - return -errno (igt_pkill()) in case of failure (Cris Wilson) - return bool for igt_kmod_is_loaded(), replaced strncasecmp with strncmp (Chris Wilson) v2: - Renamed libkmod helpers (Chris Wilson) - Removed SIGTERM/SIGKILL case where we repeatedly tried to terminate the process: just call kill(2) once (Chris Wilson) - Removed redundant check in igt_kmod_unload(), igt_module_in_use() (Chris Wilson) - Pass flags to igt_kmod_unload() from the caller (Chris Wilson) - Removed useless function igt_kill() which acts just as kill(2) (Chris Wilson) Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
2016-11-29lib: add igt_dummyloadAbdiel Janulgue1-0/+1
A lot of igt testcases need some GPU workload to make sure a race window is big enough. Unfortunately having a fixed amount of workload leads to spurious test failures or overly long runtimes on some fast/slow platforms. This library contains functionality to submit GPU workloads that should consume exactly a specific amount of time. Since v14: Since we are using multiple signals, walk list of batches to terminate a batch to avoid using a single global batch. Cycle signals between SIGRTMIN and SIGRTMAX properly. Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: tomeu@tomeuvizoso.net Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Signed-off-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
2016-07-27docs: minimal docs for igt_vgem.cDaniel Vetter1-0/+1
Feeling somewhat lazy right now ;-) Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-07-27docs: pull in VC4 docsDaniel Vetter1-0/+1
We have them, let's use them. Cc: Eric Anholt <eric@anholt.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-07-27lib: Update docs for igt_sysfs.cDaniel Vetter1-0/+1
Need to actually put it into the master .xml. Also rename the parameter names in the source with the ones in the header files to avoid confusion. gtkdoc requires that the names in the comment matches with the header. Cc: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-02-19lib/igt_pm: Lib for power managementDavid Weinehall1-0/+1
Move power management related code to a separate library. Initially this is done only for workarounds that apply to external components. Modify the users of such workarounds accordingly. This currently involves HD audio and SATA link power management. For SATA link PM there's also code to save the previous settings, to allow for resetting the values after we've finished testing. Signed-off-by: David Weinehall <david.weinehall@intel.com> Reviewed-by: Marius Vlad <marius.c.vlad@intel.com> Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
2015-12-21docs: add igt_edid_template.h to IGNORE_HFILESThomas Wood1-3/+3
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-12-02docs: exclude gpgpu_fill.hThomas Wood1-3/+4
gpgpu_fill.h is only used internally by the library. Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-07-02docs: various documentation fixesThomas Wood1-5/+5
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2015-07-02docs: fix duplicated ID errorThomas Wood1-1/+1
Signed-off-by: Thomas Wood <thomas.wood@intel.com>