public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
From: "Naladala, Ramanaidu" <Ramanaidu.naladala@intel.com>
To: <igt-dev@lists.freedesktop.org>
Subject: Re: [PATCH i-g-t v9 46/49] docs/unigraf: Add unigraf documentation
Date: Tue, 24 Mar 2026 13:37:48 +0530	[thread overview]
Message-ID: <e8ee8ac7-8b5b-4da8-8258-f38ec559f78f@intel.com> (raw)
In-Reply-To: <20260316-unigraf-integration-v9-46-a01dffc3b0cb@bootlin.com>

[-- Attachment #1: Type: text/plain, Size: 6833 bytes --]

Hi Louis Chauvet,

On 3/16/2026 9:48 PM, Louis Chauvet wrote:
> Add unigraf documentation to explain how to compile and use it with IGT.
>
> Signed-off-by: Louis Chauvet<louis.chauvet@bootlin.com>
> ---
>   docs/unigraf.txt | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 81 insertions(+)
>
> diff --git a/docs/unigraf.txt b/docs/unigraf.txt
> new file mode 100644
> index 000000000000..37996a2ef98b
> --- /dev/null
> +++ b/docs/unigraf.txt
> @@ -0,0 +1,81 @@
> +Unigraf Support in IGT
> +========================
> +
> +This document provides information and instructions for Unigraf support in IGT.
> +
> +Introduction
> +------------
> +
> +Unigraf devices are a set of devices that can be used to test all sort of graphical
> +interface and signals. See Unigraf website for more information about all the
> +capabilities of each devices:https://unigraf.fi
> +
> +Unigraf documentation
> +---------------------
> +
> +All the documentation for libTSI, the library used to communicate with the unigraf,
> +can be found on unigraf website:https://www.unigraf.fi/downloads/
> +
> +Setting up Unigraf
> +------------------
> +
> +For most of the unigraf devices, this should be as simple as "plugging the
> +unigraf and plug the video cable". If you need to install some license, upgrade
> +the firmware... please take a look at the official unigraf documentation.
> +
> +Compiling IGT with Unigraf support
> +----------------------------------
> +
> +Unfortunately, the communication with the device use a proprietary library and the
> +underlying protocol is not open. To use the unigraf you need to install the unigraf
> +SDK, grab the libTSI.so and make it available on the build machine and the DUT.
> +
> +Deploying the Unigraf with IGT
> +------------------------------
> +
> +Unigraf may work out of the box: by default if IGT find a unigraf device, it will
> +try to connect and configure it to use USB-C input. This allows running most of
> +the existing tests without an actual screens.
> +
> +Here is a complete example configuration:
> +
> +        [Unigraf]
> +        # Choose a device using his name, you can find it in UCDConsole (installed with the SDK)
> +        Device=UCD-500 [2434C620]
> +        # Choose a role for the device, you can find it UCDConsole
> +        Role=USB-C, DP Alt Mode Source and Sink
> +        # Choose active input for the device
> +        Input=DP RX
Please document the required Input parameters(DP RX, USB RX) in the 
|igtrc| file for each supported *Role* type. When an input name is 
missing, misspelled, or incompatible with the selected Role, the 
function |unigraf_open_device()| triggers an assertion.
more log info:

Starting subtest: unigraf-connect-edid
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: Test assertion failure function unigraf_open_device, file ../lib/unigraf/unigraf.c:495:
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: Failed assertion: chosen_input >= 0
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: Last errno: 2, No such file or directory
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: TSI:0x5dad11372b90: Input DP RX not found.Subtest unigraf-connect-edid failed.
**** DEBUG ****
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:(nil): Initialize unigraf...
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:(nil): No connector name configured, will autodetect.
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:(nil): Detected unigraf device 0: UCD-500 [2607C673]
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:0x5dad11372b90: Successfully opened the unigraf device 0.
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:0x5dad11372b90: Role 0: DisplayPort Source and Sink
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:0x5dad11372b90: Role 1: DisplayPort Source and USB-C, DP Alt Mode Sink
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:0x5dad11372b90: Role 2: DisplayPort Sink and USB-C, DP Alt Mode Source
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:0x5dad11372b90: Role 3: USB-C, DP Alt Mode Source and Sink
(unigraf_connectivity:22870) unigraf/unigraf-DEBUG: TSI:0x5dad11372b90: Input 0: USB-C RX
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: Test assertion failure function unigraf_open_device, file ../lib/unigraf/unigraf.c:495:
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: Failed assertion: chosen_input >= 0
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: Last errno: 2, No such file or directory
(unigraf_connectivity:22870) unigraf/unigraf-CRITICAL: TSI:0x5dad11372b90: Input DP RX not found.Stack trace:
(unigraf_connectivity:22870) igt_core-INFO:   #0 ../lib/igt_core.c:2108 __igt_fail_assert()
(unigraf_connectivity:22870) igt_core-INFO:   #1 [unigraf_open_device+0xb8e]
(unigraf_connectivity:22870) igt_core-INFO:   #2 ../lib/unigraf/unigraf.c:532 unigraf_require_device()
(unigraf_connectivity:22870) igt_core-INFO:   #3 ../tests/unigraf/unigraf_connectivity.c:58 __igt_unique____real_main35()
(unigraf_connectivity:22870) igt_core-INFO:   #4 ../tests/unigraf/unigraf_connectivity.c:35 main()
(unigraf_connectivity:22870) igt_core-INFO:   #5 ../sysdeps/nptl/libc_start_call_main.h:74 __libc_start_call_main()
(unigraf_connectivity:22870) igt_core-INFO:   #6 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
(unigraf_connectivity:22870) igt_core-INFO:   #7 [_start+0x25]
****  END  ****


> +        # Set the connector name used by the unigraf device. If not set, IGT will try to
> +        # autodetect which connector is used.
> +        Connector=DP-2
> +        # Set the EDID used by Unigraf
> +        EDID=DEL_16543_DELL_P2314T_DP
> +        # Enable or disable the use of Unigraf's CRCs instead of the CRTC CRCs
> +        UseCRC=1
> +        # Set the number of emulated MST streams (0 = Single Stream Transport, >=1 = MST)
> +        MSTStreams=0
> +
> +Current Support in IGT
> +----------------------
> +
> +Support for the Unigraf devices in IGT is found in the following places:
> +* lib/unigraf/unigraf.[ch] -> IGT API
> +* lib/unigraf/TSI.h -> Header for libTSI.so, not provided by Unigraf
> +* lib/unigraf/TSI_types.h -> Header containing all the relevant values from unigraf SDK. The unigraf SDK can't be used directly because it is only compatible with windows and c++.
> +
> +Current unigraf.c features are:
> +* Plug, unplug, hotplug pulse
> +* EDID management
> +* MST/SST stream management
> +* CRC calculation
> +
> +Current testing are:
> +* All igt tests that require a display and use a CRC (kms_plane, kms_cursor_crc, ...)
> +* Basic EDID and MST tests
> +
> +Planned tests:
> +* Link training scenarios (link rate, lane count, scrambling, ...)
> +* Bandwidth constraint management
> +* HDCP content protection
> +* Display stream compression
>

[-- Attachment #2: Type: text/html, Size: 8412 bytes --]

  parent reply	other threads:[~2026-03-24  8:08 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-16 16:17 [PATCH i-g-t v9 00/49] Unigraf integration Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 01/49] lib/igt_kms: Add a detect timeout value Louis Chauvet
2026-03-16 18:50   ` Kamil Konieczny
2026-03-16 16:17 ` [PATCH i-g-t v9 02/49] lib/igt_kms: Add helper to wait for a specific status on a connector Louis Chauvet
2026-03-24 10:22   ` Kamil Konieczny
2026-03-16 16:17 ` [PATCH i-g-t v9 03/49] lib/igt_kms: Add function to list connected connectors Louis Chauvet
2026-03-24 10:34   ` Kamil Konieczny
2026-03-24 13:56     ` Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 04/49] lib/igt_kms: Add helper to obtain a connector by its name or MST path Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 05/49] lib/igt_kms: Add helper to wait for new connectors Louis Chauvet
2026-03-17 14:56   ` Kory Maincent
2026-03-23 14:40     ` Louis Chauvet
2026-03-24 10:11   ` Kamil Konieczny
2026-03-16 16:17 ` [PATCH i-g-t v9 06/49] lib/tests: Add tests for array manipulations Louis Chauvet
2026-03-17 15:00   ` Kory Maincent
2026-03-16 16:17 ` [PATCH i-g-t v9 07/49] lib/igt_kms: Add helper to get a pipe from a connector Louis Chauvet
2026-03-24  7:58   ` Jani Nikula
2026-03-24 10:02   ` Kamil Konieczny
2026-03-16 16:17 ` [PATCH i-g-t v9 08/49] lib/igt_kms: Expose dump_connector_attrs Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 09/49] lib/igt_kms: Expose reset_connectors_at_exit Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 10/49] lib/igt_kms: Expose connector_attr_set and igt_connector_attr_set Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 11/49] lib/igt_debugfs: Move debugfs helpers to the proper location Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 12/49] lib/igt_debugfs: Add const when make sense Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 13/49] lib/igt_amd: " Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 14/49] lib/igt_kms: " Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 15/49] lib/monitor_edids: Add helper functions for using monitor_edid objects Louis Chauvet
2026-03-17 15:09   ` Kory Maincent
2026-03-24 10:15   ` Kamil Konieczny
2026-03-24 14:09     ` Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 16/49] lib/monitor_edids: Add helper to get an EDID by its name Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 17/49] lib/monitor_edids: Add helper to print all available EDID names Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 18/49] lib/unigraf: Add used defines for TSI_Types Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 19/49] lib/unigraf: Add TSI.h Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 20/49] lib/unigraf: Initial Unigraf support Louis Chauvet
2026-03-24  8:19   ` Naladala, Ramanaidu
2026-03-24  9:37     ` Louis Chauvet
2026-03-26  9:59       ` Louis Chauvet
2026-03-24  9:58   ` Kamil Konieczny
2026-03-16 16:17 ` [PATCH i-g-t v9 21/49] lib/igt_kms: Automatically connect unigraf on display require Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 22/49] lib/unigraf: Introduce device configuration Louis Chauvet
2026-03-17 15:16   ` Kory Maincent
2026-03-16 16:17 ` [PATCH i-g-t v9 23/49] lib/unigraf: Introduce role configuration Louis Chauvet
2026-03-17 15:19   ` Kory Maincent
2026-03-16 16:17 ` [PATCH i-g-t v9 24/49] lib/unigraf: Introduce input configuration Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 25/49] lib/unigraf: Add reset function Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 26/49] lib/unigraf: Add unigraf assert and deassert helpers Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 27/49] lib/unigraf: Add plug/unplug helpers Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 28/49] lib/unigraf: Allows sst/mst configuration Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 29/49] lib/unigraf: Add helpers to read and write edid Louis Chauvet
2026-03-17 15:32   ` Kory Maincent
2026-03-23 14:46     ` Louis Chauvet
2026-03-23 16:26   ` Kamil Konieczny
2026-03-23 17:34     ` Louis Chauvet
2026-03-24  9:35       ` Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 30/49] lib/unigraf: Add connector and EDID configuration Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 31/49] tests/unigraf: Add basic unigraf tests Louis Chauvet
2026-03-17 15:46   ` Kory Maincent
2026-03-23 14:49     ` Louis Chauvet
2026-03-24 19:25   ` Naladala, Ramanaidu
2026-03-16 16:17 ` [PATCH i-g-t v9 32/49] lib/unigraf: Add unigraf CRC capture Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 33/49] lib/unigraf: Add configuration for CRC usage Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 34/49] lib/unigraf: add unigraf_get_connector_by_stream Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 35/49] lib/unigraf: Add helper to check timings received by unigraf Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 36/49] lib/igt_pipe_crc: Add unigraf crc calculation Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 37/49] lib/i915/dp: Move DP-related function for i915 to proper folder Louis Chauvet
2026-03-16 16:17 ` [PATCH i-g-t v9 38/49] lib/i915/dp: Rename functions to avoid confusion Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 39/49] lib/i915/dp: Add helper to get maximum supported rate Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 40/49] lib/i915/dp: Properly check sscanf results Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 41/49] lib/i915/dp: Use igt_output_name instead of private field Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 42/49] lib/igt_dp: Create generic helpers for DP information Louis Chauvet
2026-03-17 15:55   ` Kory Maincent
2026-03-23 14:52     ` Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 43/49] lib/igt_kms: Add asserts to avoid null pointer dereference Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 44/49] lib/igt_kms: Add helper to get a CRTC from an output Louis Chauvet
2026-03-17 15:56   ` Kory Maincent
2026-03-16 16:18 ` [PATCH i-g-t v9 45/49] lib/unigraf: Add lane count configuration Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 46/49] docs/unigraf: Add unigraf documentation Louis Chauvet
2026-03-17 15:58   ` Kory Maincent
2026-03-24  8:07   ` Naladala, Ramanaidu [this message]
2026-03-16 16:18 ` [PATCH i-g-t v9 47/49] lib/unigraf: Add helpers to set maximum link rate Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 48/49] lib/unigraf: Add helpers to get the current LT status Louis Chauvet
2026-03-16 16:18 ` [PATCH i-g-t v9 49/49] tests/unigraf/unigraf_lt: Add test for link training Louis Chauvet
2026-03-17 12:02 ` ✗ Fi.CI.BUILD: failure for Unigraf integration (rev8) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e8ee8ac7-8b5b-4da8-8258-f38ec559f78f@intel.com \
    --to=ramanaidu.naladala@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox