How to Configure a System for Automatic Display Placement

Automatic display placement

Automatic display placement allows for displays to be matched with a physical monitor following a sorting algorithm. The sorting algorithm is applied to both the physical monitors (by looking at their logical configuration found in the Windows display settings) and the Vortex displays layout (found in the vxc file configuration). More details on the sorting algorithm can be found in the “Display sorting algorithm” section.

This setting can be selected by choosing “Automatic” in the “Placement mode” drop down list of either a 3D display or Qt display.

Note: Display information is not shared between vxc nodes, therefore all displays intended to run on a system should be in a singular node.

Windows display settings

To ensure the proper functionality of the automatic display placement mode, it is recommended to match the following:

  1. The positioning of the Vortex displays found in the vxc file configuration.

  2. The logical configuration of the monitors found in the Windows display placement.

For example, if the vxc file is configured for a vertical display setup:

The Windows display settings should be placed similar to this:

Note: The “main display” setting in Windows “display settings” has no impact on how the monitors and Vortex displays are matched.

Note: When running with Unity application, the “main display“ must be on the topleft-most display in the Windows settings. If this is not done, an extra black display will appear. This is caused by a limitation with Unity, better described here.

Portrait mode

If the Display orientation of a monitor is required to be running in portrait mode, it is important that the display orientation is not changed in the Windows display settings; it should be left on Landscape orientation.

Logging

Logs related to display placement can be viewed when the LoggingLevel is set to Info.

This logging level can be set in VortexEditor when selecting the root item in the Explorer’s item tree.

For example, the following logs can be observed in a system with 3 monitors running a vxc file with 2 displays:

Windows display settings

vxc configuration

Logs

Mon Jan 9 15:33:25 2023 - INFO - HandlerDisplayViewpoint - Display placement updated (Monitor # is the index found in Windows display settings): Mon Jan 9 15:33:25 2023 - INFO - HandlerDisplayViewpoint - 3D display (Front): Monitor #3 (DELA0E6) Mon Jan 9 15:33:25 2023 - INFO - HandlerDisplayViewpoint - Qt display: Monitor #2 (DELA0E6) Mon Jan 9 15:33:25 2023 - INFO - HandlerDisplayViewpoint - No display: Monitor #1 (LEN4183)

Display sorting algorithm (optional)

This section can be useful to understand when debugging a configuration issue.

Windows display settings sort

The displays found in the Windows “display settings” will be 2D sorted horizontally first from left-most to right-most display, and if displays have the same horizontal positioning they will be sorted vertically from top-most to bottom-most display, as seen in the following illustration:

In this illustration the displays will first be grouped horizontally in three groups [(1, 4, 7), (2, 5, 8), (3, 6, 9)], and then each group is vertically sorted to give [1, 4, 7, 2, 5, 8, 3, 6, 9].

Note: When comparing the positions of displays, a radius of 420 pixels is added to the centre of the display. If the compared display’s centre position is outside of that radius, then it is deemed to be on a different horizontal/vertical position. This is to avoid displays with slight positional variations to cause issues.

 

Using this sorting algorithm, the following display settings will all give the same indexing: [3, 2, 1].

From this we can conclude that if a setup switches from a vertical to a horizontal setup, the Windows display settings don’t need to change even if this goes against the recommendation of keeping the Windows display settings and the vxc file configuration layouts identical.

vxc configuration sorting

The vxc configuration is also sorted with horizontal priority, but it additionally sorts with the depth of the displays (x axis in Vortex Editor). The depth is the last priority and will only take into effect if two displays have identical horizontal and vertical values. In this case, the deepest screen will be displayed first (farthest away from viewer).