A "display device" refers to a hardware device capable of displaying an image. Most NVIDIA GPUs can drive multiple display devices simultaneously.
Many X configuration options can be used to separately configure each display device in use by the X screen. To address an individual display device, you can use one of several names that are assigned to it.
For example, the "ModeValidation" X configuration option by default applies to all display devices on the X screen. E.g.,
Option "ModeValidation" "NoMaxPClkCheck"
You can use a display device name qualifier to configure each display device's ModeValidation separately. E.g.,
Option "ModeValidation" "DFP-0: NoMaxPClkCheck; CRT-1: NoVesaModes"
The description of each X configuration option in Appendix B, X Config Options provides more detail on the available syntax for each option.
The available display device names vary by GPU. To find all
available names for your configuration, start the X server with
verbose logging enabled (e.g., startx -- -logverbose 5
, or
enable the "ModeDebug" X configuration option with nvidia-xconfig --mode-debug
and
restart the X server).
The X log (normally /var/log/Xorg.0.log) will contain a list of what display devices are valid for the GPU. E.g.,
(--) NVIDIA(0): Valid display device(s) on Quadro 6000 at PCI:10:0:0 (--) NVIDIA(0): CRT-0 (--) NVIDIA(0): CRT-1 (--) NVIDIA(0): DELL U2410 (DFP-0) (connected) (--) NVIDIA(0): NEC LCD1980SXi (DFP-1) (connected)
The X log will also contain a list of which display devices are assigned to the X screen. E.g.,
(II) NVIDIA(0): Display device(s) assigned to X screen 0: (II) NVIDIA(0): CRT-0 (II) NVIDIA(0): CRT-1 (II) NVIDIA(0): DELL U2410 (DFP-0) (II) NVIDIA(0): NEC LCD1980SXi (DFP-1)
Note that when multiple X screens are configured on the same GPU, the NVIDIA X driver assigns different display devices to each X screen. On X servers that support RandR 1.2 or later, the NVIDIA X driver will create an RandR output for each display device assigned to an X screen.
The X log will also report a list of "Name Aliases" for each display device. E.g.,
(--) NVIDIA(0): Name Aliases for NEC LCD1980SXi (DFP-1): (--) NVIDIA(0): DFP (--) NVIDIA(0): DFP-1 (--) NVIDIA(0): DPY-3 (--) NVIDIA(0): DVI-I-3 (--) NVIDIA(0): DPY-EDID-373091cb-5c07-6430-54d2-1112efd64b44
These aliases can be used interchangeably to refer to the same
display device in any X configuration option, as an nvidia-settings
target specification, or in NV-CONTROL protocol that uses similar
strings, such as NV_CTRL_STRING_CURRENT_METAMODE_VERSION_2
(available through the nvidia-settings command line as
nvidia-settings --query
CurrentMetaMode
).
Each alias has different properties that may affect which alias is appropriate to use. The possible alias names are:
A "type"-based name (e.g., "DFP-1"). This name is a unique index plus a display device type name, though in actuality the "type name" is selected based on the protocol through which the X driver communicates to the display device. If the X driver communicates using VGA, then the name is "CRT"; if the driver communicates using TMDS, LVDS, or DP, then the name is "DFP"; if the driver communicates using S-Video, composite video, or component video, then the name is "TV".
This may cause confusion in some cases (e.g., a digital flat panel connected via VGA will have the name "CRT"), but this name alias is provided for backwards compatibility with earlier NVIDIA driver releases.
Also for backwards compatibility, an alias is provided that uses the "type name" without an index. This name alias will match any display device of that type: it is not unique across the X screen.
Note that the index in this type-based name is based on which physical connector is used. If you reconnect a display device to a different connector on the GPU, the type-based name will be different.
A connector-based name (e.g., "DVI-I-3"). This name is a unique index plus a name that is based on the physical connector through which the display device is connected to the GPU. E.g., "VGA-1", "DVI-I-0", "DVI-D-3", "LVDS-1", "DP-2", "HDMI-3", "eDP-6", "USB-C-0". On X servers that support RandR 1.2 or later, this name is also used as the RandR output name.
Note that the index in this connector-based name is based on which physical connector is used. If you reconnect a display device to a different connector on the GPU, the connector-based name will be different.
When Mosaic is enabled, this name is prefixed with a GPU identifier to make it unique. For example, a Mosaic configuration with two DisplayPort devices might have two different outputs with names "GPU-0.DP-0" and "GPU-1.DP-0", respectively. See Appendix K, GPU Names for a description of valid GPU names.
An EDID-based name (e.g., "DPY-EDID-373091cb-5c07-6430-54d2-1112efd64b44"). This name is a SHA-1 hash, formatted in canonical UUID 8-4-4-4-12 format, of the display device's EDID. This name will be the same regardless of which physical connector on the GPU you use, but it will not be unique if you have multiple display devices with the same EDID.
An NV-CONTROL target ID-based name (e.g., "DPY-3"). The NVIDIA X driver will assign a unique ID to each display device on the entire X server. These IDs are not guaranteed to be persistent from one run of the X server to the next, so is likely not convenient for X configuration file use. It is more frequently used in communication with NV-CONTROL clients such as nvidia-settings.
When DisplayPort 1.2 branch devices are present, display devices
will be created with type- and connector-based names that are based
on how they are connected to the branch device tree. For example,
if a connector named DP-2 has a branch device attached and a
DisplayPort device is connected to the branch device's first
downstream port, a display device named DP-2.1
might be created. If another branch
device is connected between the first branch device and the display
device, the name might be DP-2.1.1
.
Any display device name can have an optional GPU qualifier prefix. E.g., "GPU-0.DVI-I-3". This is useful in Mosaic configurations: type- and connector-based display device names are only unique within a GPU, so the GPU qualifier is used to distinguish between identically named display devices on different GPUs. For example:
Option "MetaModes" "GPU-0.CRT-0: 1600x1200, GPU-1.CRT-0: 1024x768"
If no GPU is specified for a particular display device name, the setting will apply to any devices with that name across all GPUs. Note that the GPU UUID can also be used as the qualifier. E.g., "GPU-758a4cf7-0761-62c7-9bf7-c7d950b817c6.DVI-I-1". See Appendix K, GPU Names For details.