summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2020-05-20lib/gpgpu_fill: libdrm-free gpgpu pipeline creationZbigniew Kempczyński
Provide "v2" pipeline for gpgpu fill for all gens. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-20lib/gpu_cmds: Add gpgpu pipeline functions based on intel_bbZbigniew Kempczyński
Add no-libdrm functions which will replace libdrm version in the final version. v5: fix offset (Chris), emits addresses Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-20lib/intel_batchbuffer: Introduce intel_bbZbigniew Kempczyński
Simple batchbuffer facility which gathers and outputs relocations. v2: make bb api more consistent and universal v3: fix compiling issues on non-x86 arch v4: add indexing tree and marking object as render target v5: randomizing addresses to avoid relocations v6: fix invalid reallocation size (Chris) Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-20lib/rendercopy_bufmgr: Pass alignment during buffer initializationZbigniew Kempczyński
For linear buffer buf_ops currently was extended to align the stride so we need to update the call. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-20lib/intel_bufops: Add bufops reference and adapt stride requirementZbigniew Kempczyński
Add bufops reference to intel_buf to allow acquire drm fd against which buffer was created. Change stride limitation for intel_buf for non-tiled buffers. Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-20lib: Cleanup __igt_params_open()Chris Wilson
The device always exist, so use it to derive the module name required to lookup either the debugfs params directory or the sysfs module parameters. Fixes: 2f5cee33ce55 ("igt/params: use igt_params_set_save for igt_set_module_param*") Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
2020-05-20Always pass device to igt_params_setChris Wilson
Don't second guess, require the user to provide the device that wish to set the module parameter for. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
2020-05-20lib/i915: Assume unknown hardware just worksChris Wilson
If we don't recognise the hardware, then it can't be any of the known broken HW where MI_STORE_DWORD_IMM either uses physical addressing or simply fails catastrophically. As it's not known to be broken, assume it just works. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-05-19lib: Remove early has_known_intel_chipset() checkChris Wilson
When opening a specific driver, open that driver. Once we have the device fd, we can then do feature checks that the tests *actually* require. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Petri Latvala <petri.latvala@intel.com>
2020-05-19lib/i915: Reset all engine properties to defaults prior to the start of a testChris Wilson
We need each test in an isolated context, so that bad results from one test do not interfere with the next. In particular, we want to clean up the device and reset it to the defaults so that they are known for the next test, and the test can focus on behaviour it wants to control. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-05-18lib/igt_pm: Add lib func to get lpsp capabilityAnshuman Gupta
This lib function evaluate the lpsp capability from the connector specific debugfs attribute i915_lpsp_info. v2: - changed the lib function prefix igt_output_is_lpsp_capable to i915_output_is_lpsp_capable. [Martin] v3: - early return for the connector which doesn't support lpsp on any platform. v4: - debugfs entry changed from i915_lpsp_info to i915_lpsp_capability. v5: - return lpsp capability false if i915_lpsp_capability debugfs is not present. [Animesh] Reviewed-by: Animesh Manna <animesh.manna@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
2020-05-14lib/igt_gt: Add newline to IGT_HANG=0 skipsPetri Latvala
v2: Include the variable name in the output (Chris) Signed-off-by: Petri Latvala <petri.latvala@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-11Macros fixes: Removed unused & redundant macrosranjeet kumar
Local macros were declared in several files as a prelude to upstream implementations. Now that we ship include/drm-uapi, we can remove LOCAL as we upstream. Cc: Dixit, Ashutosh <ashutosh.dixit@intel.com> Cc: Tahvanainen Jari <jari.tahvanainen@intel.com> Signed-off-by: ranjeet kumar <ranjeet1.kumar@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-11lib/igt_kms: Make igt_display_require() + chamelium more robustArkadiusz Hiler
1. We don't reset Chamelium, as this generates extra unplug events if any of the ports is already connected which is often the case 2. We try to plug all the chamelium ports, it's a noop if they are already plugged 2. We wait for all the ports being connected: - if the port mapping is provided: wait for the ports to be connected - if there is no mapping: sleep(10) and hope for the best Cc: Petri Latvala <petri.latvala@intel.com> Cc: Imre Deak <imre.deak@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2020-05-11lib/igt_chamelium: Sleep when doing autodiscoveryArkadiusz Hiler
Autodiscovery was wrongly assuming that whenever we do chamelium_plug() the connector state change is immediate. It was working most of the time for native connectors, but may explain some of the flip-flopping skips. The problem got only more serious with the advent of LSPcons as USB-C, where we have much things happening on the signal path, introducing delays. So for the sake of reliability this change introduces sleep(10) between plug and reprobe. The number is about 2 * the_most_pathological_case_observed. Also the discovery step is performed only if there is no static port mapping set up. After the discovery is done, IGT prints the mapping ready to be pasted into .igtrc. Cc: Kunal Joshi <kunal1.joshi@intel.com> Cc: Imre Deak <imre.deak@intel.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com>
2020-05-08igt/params: use igt_params_set_save for igt_set_module_param*Juha-Pekka Heikkila
Unify parameter access. Here switch to use debugfs/dri/N as default for module parameters with fallback to /sys/module/<device>/parameters. Here is also decided 'default' device if -1 is specified as device. Default being that device which is first to match requirements. Default device is used only for sysfs, not for debugfs. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-08igt/params: add generic saving module parameter setJani Nikula
Add functionality to save original value to be restored by exit handler and setting new value. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-08lib/params: add igt_params_open() which will return pathJani Nikula
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2020-05-08lib/params: overhaul param savingJani Nikula
More generic, use existing functions. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-08lib/params: start renaming functions igt_params_*Juha-Pekka Heikkila
Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-08lib/params: add igt_params.c for module parameter accessJani Nikula
We have generic helpers for sysfs access in igt_sysfs.c, but we also have a number of module parameter access specific helpers scattered here and there. Start gathering the latter into a file of its own. For i915, the long-term goal is to migrate from module parameters to device specific debugfs parameters. With all igt module param access centralized in one place, we can make the transition much easier. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-07lib/i915: Split igt_require_gem() into i915/Chris Wilson
igt_require_gem() is a pecularity of i915/, move it out of the core. Similar opportunistic move of gem_reopen_driver() and gem_quiescent_gpu(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-05-05lib/tests: Add tests for magic control blocks nestingArkadiusz Hiler
Cc: Petri Latvala <petri.latvala@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-05lib/igt_core: Disallow nesting of igt_dynamic inside igt_dynamicArkadiusz Hiler
igt_dynamic is allowed only inside igt_subtest_with_dynamic Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-05lib/igt_core: Make assert on invalid magic blocks nesting more verboseArkadiusz Hiler
Instead of ending the execution with cryptic assert let's actually print a message explaining the reason and point towards igt_core's documentation. I am sticking with assert() instead of abort() because of the semi-useful stacktraces it produces. Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-05lib/drmtest: Introduce __drm_open_driver_anotherArkadiusz Hiler
__drm_open_driver_another(int idx, ...) is a counterpart to __drm_open_driver(..) with the following changes: If device filters are provided the idx-th filter is used and the first matching device is selected. Consecutive calls to it, with increasing idx (starting from zero) are guaranteed to return fd of a different /dev/dri/ node than the previous calls or -1. Counterparts to other existing drm_open_*() should be introduced in similar fashion as the need arises. v2: (Petri) * try_modprobe if device is not found * split kms_prime changes into a separate commit Cc: Petri Latvala <petri.latvala@intel.com> Cc: Mika Kahola <mika.kahola@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-05-05lib: Support multiple filtersArkadiusz Hiler
This patch brings back support for multiple filters that was in the original series by Zbyszek. We can now take multiple, semicolon separated filters. Right now the tests are using only the first filter. v2: drop unnecessary check before for-loop (Petri) Cc: Petri Latvala <petri.latvala@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-04-29tests/kms_fbcon_fbt: Reduce execution time by not calling wait_until_enabled()José Roberto de Souza
After unset all CRTCs is expected that FBC and PSR is disabled, calling wait_until_enabled() will make it wait until timeout to it return false and pass the test. So instead lets implement is_disabled() hook, as the kmstest_unset_all_crtcs() is a synchronous call, the features will be already disabled after it, so no need to do any wait. Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
2020-04-29tests/kms_fbcon_fbt: Make FBC wait_until_update() more reliableJosé Roberto de Souza
We can't depend onto debugfs reads of the FBC status as compression takes one idle frame to recompress and we could easily miss that. Instead lets use the pipe CRC as it keeps the CRC of each frame so we can compare each other until a blink in the FBCON causes it do change. Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
2020-04-29lib/ioctl_wrappers: Delete gem_total_mappable_size()Ashutosh Dixit
gem_total_mappable_size() has no callers and calls the DRM_I915_GEM_GET_APERTURE ioctl using 'struct local_i915_gem_get_aperture' which has fields which are unsupported in the kernel. Delete the function. Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-04-17igt_core: Add --versionPetri Latvala
To help verify correct deployment, add a --version flag that just prints the IGT-Version text. Signed-off-by: Petri Latvala <petri.latvala@intel.com> Cc: Tomi Sarvela <tomi.p.sarvela@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
2020-04-17lib/color_encoding: Fix up support for XYUV format.Bob Paauwe
Add XYUV8888 to the list of DRM Formats to test. Also fix the byte order for the format. Signed-off-by: Bob Paauwe <bob.j.paauwe@intel.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2020-04-16lib: Use read() for timerfd timeout detectionChris Wilson
The poll() is proving unreliable, where our tests timeout without the spinner being terminated. Let's try a blocking read instead! Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/1676 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: "Dixit, Ashutosh" <ashutosh.dixit@intel.com> Reviewed-by: "Dixit, Ashutosh" <ashutosh.dixit@intel.com>
2020-04-15tests/kms_chamelium: Test HPD for different mode handling scenariosArkadiusz Hiler
The default scenario is now performing all hotplugs with modes disabled on all connectors. This is the quickest of the tests and represents userspace not caring about the new display (e.g. explicitly disabled). *-hpd-enable-disable-mode covers the most common userspace behavior where each hotplug event is accompanied by a corresponding enabling / disabling commit. *-hpd-with-enabled-mode explicitly targets the scenario where we have mode enabled and never disable it as we do hotplugs to reproduce the issue we see with TypeC connectors for ICL and TGL. v2: - refresh igt_display output state after reprobing - get mode and set pipe only after we have connector plugged in v3: fix VGA subtest names (Kunal) Cc: Kunal Joshi <kunal1.joshi@intel.com> Cc: Imre Deak <imre.deak@intel.com> Issue: https://gitlab.freedesktop.org/drm/intel/issues/323 Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
2020-04-09lib: Set initial invalid timerfd to -1Chris Wilson
Allow for a timerfd of 0, just in case some test closes stdin. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-04-09lib/i915/perf: update TGL configsLionel Landwerlin
Some HW woes are forcing us to store EU activity counters in a different way. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Acked-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
2020-04-09i915/gem_wait: Warn if the test completes before the spinner times outChris Wilson
Check that our threaded timer to expire the igt_spin_t does fire! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-04-09lib/i915: Cleanup errno before starting testsChris Wilson
Since we probe the existence of the engines, we expect errno to be randomly set prior to starting the test. Lets reset it to 0 so that any error before the igt_dynamic_f test is not mistakenly printed by a failed test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-04-09lib: Show the actual error from submitting the rendercopyChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-04-06i915/i915_hangman: Drop last reference to bygone 'i915_error_state'Chris Wilson
The test is looking at sysfs/error so dumping the old debugfs/i915_error_state looks quite silly. The only dilemma is whether it is worth replacing with a line-by-line dump. I propose we make that a future problem -- and leave it to whoever has to debug it next time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Andi Shyti <andi.shyti@intel.com>
2020-04-06lib: Fix device lists not cleaned up sufficiently before rescanJanusz Krzysztofik
Some effort is already taken to clean up previous content of device lists before forced device rescan is performed but it is not sufficient. An attempt to use forced device rescan in a test results in that test crashing or spinning until being killed by OOM killer. Fix it. v2: Remove device from the list before device attributes are destroyed Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@linux.intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
2020-04-04lib/igt_dummyload: Give the timer thread a RT priority boostChris Wilson
Do not leave it up to the lazy scheduler when the timeout is applied to the batch, force it to be real-time! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Michał Winiarski <michal.winiarski@intel.com> Reviewed-by: Andi Shyti <andi.shyti@intel.com>
2020-04-03lib: Bump estimates for object overheadChris Wilson
We are dramatically underestimating the overhead for an active object and its inodes. Not that we condone such largesse! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Matthew Auld <matthew.auld@intel.com>
2020-04-02lib/i915/perf: break generated code in separate filesLionel Landwerlin
Initially all the generated code was per generation. Eventually we grouped it into a single file to reuse as much as possible equation code (this reduce binary size by a factor). So many equations are just the same from generation to generation. But this generated file is 200k lines long... This change puts all the equations into a single file, so that we reuse as much code as possible, and then breaks down the metric sets & register configurations into per generation files. v2: Split registers away from the metric set descriptions v3: Fix automake Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2020-04-02lib/i915/perf: remove generation code for mathml renderLionel Landwerlin
Gputop had support for generating mathml figures of the post processing equations. It's not useful here. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2020-04-01i915/gem_exec_schedule: Dynamic engine testsChris Wilson
Use igt_subtest_with_dynamic for the flexible approach to engine dependent test discovery. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
2020-03-31lib: Sync i915_pciids.h with kernelSwathi Dhanavanthri
Changes: 3882581753d1 ("drm/i915/tgl: Add new PCI IDs to TGL") v2: Separated U series CML IDs to be in sync with kernel 8717c6b7414f ("Separate U series pci id from origianl list") v3: Updating lib/intel_device_info.c with the U series Signed-off-by: Swathi Dhanavanthri <swathi.dhanavanthri@intel.com> Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
2020-03-31lib/igt_dummyload: Use timerfd rather than SIGEV_THREADMichał Winiarski
Since timer_delete doesn't give us any guarantees that the thread and its notify_function isn't currently running, we can hit a use-after-free in a race condition scenario. This causes a seemingly random segfault when igt_spin_end from notify thread is called after igt_spin_free was already called from the main thread. Let's fix that by using timerfd and managing the timer thread ourselves. Signed-off-by: Michał Winiarski <michal.winiarski@intel.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2020-03-31lib/igt_fb: change comments with fd descriptionMelissa Wen
Generalize description of fd since it is not restricted to i915 driver fd Signed-off-by: Melissa Wen <melissa.srw@gmail.com> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
2020-03-28i915/gem_ctx_shared: Clone engines for new contextsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Andi Shyti <andi.shyti@intel.com>