Fact-checked by Grok 2 weeks ago

DisplayID

DisplayID is a standard developed by the (VESA) that defines flexible data structures stored in a display's , allowing the device to communicate its physical dimensions, performance capabilities, supported resolutions, and other attributes to a connected video source for automatic configuration and optimal plug-and-play operation. Introduced in 2009 as a successor to the aging (EDID) standard, DisplayID was designed to provide a more extensible and future-proof format capable of accommodating emerging display technologies beyond the limitations of EDID's fixed structure. Version 1.3, released on September 23, 2013, expanded support for ultra-high-definition resolutions exceeding at 60 Hz, tiled display configurations involving multiple video processors, and stereo 3D formats, addressing the growing demands of higher pixel densities and advanced transmission rates. The standard's Version 2.0, announced on November 14, 2017, introduced a fully modular "data blocks" architecture that eliminates legacy constraints, enabling seamless integration with modern features such as (HDR) imaging, augmented and (AR/VR) applications, refresh rates over 120 Hz, Adaptive-Sync technology, elevated levels, and compact wearable displays. This evolution ensures broad applicability across diverse products, including PC monitors, consumer televisions, projectors, and embedded systems, while promoting interoperability in video interfaces like and . As stated by VESA Executive Director Bill Lempesis, "What of the DisplayID standard facilitates is a true ‘it just works’ plug-and-play consumer experience." Subsequent updates, such as version 2.1a released in 2024, have further refined the standard for .

Overview

Purpose and Functionality

DisplayID is an extensible data structure standardized by the (VESA) that enables video displays to communicate their physical characteristics, performance capabilities, timing parameters, and supported features to attached video sources over digital interfaces. This standard serves as a successor to the earlier EDID format, providing a more flexible and uniform method for conveying display information to facilitate automatic signal configuration. The primary purpose of DisplayID is to support plug-and-play functionality by allowing source devices, such as computers or set-top boxes, to query and interpret display capabilities stored in the display's , thereby enabling optimal video output without manual user intervention. It achieves this through transmission via the Enhanced Display Data Channel (E-DDC) using the DDC/CI protocol, which operates over common video interfaces including , , and VGA. Data is organized into modular 128-byte blocks, allowing for efficient reading by sources and scalability to accommodate varying amounts of information. Key benefits of DisplayID include its capacity to handle advanced display technologies, such as resolutions exceeding up to 8K and beyond, high refresh rates of 120 Hz or higher, (HDR) metadata, and configurations for tiled or multi-panel displays. The modular block-based design ensures backward compatibility with legacy systems while permitting future extensions for emerging features like adaptive synchronization and support, without disrupting existing implementations. This extensibility makes DisplayID particularly suited for modern , PC monitors, and professional displays requiring precise interoperability.

History and Development

The DisplayID standard was developed by the (VESA) in 2007 as an extension to the existing (EDID) format, addressing EDID's limitations in supporting emerging display technologies such as higher resolutions and advanced color spaces through a more flexible, variable-length data structure. This initiative aimed to future-proof plug-and-play functionality for displays in both PC and consumer electronics applications. DisplayID version 1.0 was released in December 2007, establishing the core framework for transmitting detailed display capabilities over interfaces like and . Subsequent refinements led to version 1.3 in September 2013, which enhanced support for refined timing parameters, expanded color data, resolutions, tiled display configurations, and stereo formats to accommodate the growing demands of high-resolution content. A major advancement came with DisplayID 2.0, released on November 14, 2017, which introduced a modular block-based architecture to better handle ultra-high resolutions beyond , (HDR) metadata, and adaptive synchronization technologies like variable refresh rates. This version marked a shift toward greater extensibility, allowing displays to convey complex capabilities without fixed size constraints. In response to evolving interface standards, VESA issued DisplayID 2.1a as a minor update on March 18, 2024, focusing on compatibility with 2.1 by incorporating support for enhanced cable specifications and multi-stream transport capabilities. VESA continues to maintain and evolve the DisplayID standard, making all versions available for free download since 2017 to promote widespread industry adoption.

Relation to EDID

Similarities in Data Transmission

DisplayID and EDID share the foundational mechanism of the (DDC) over the bus for transmitting display capability data from sink devices (displays) to devices (such as adapters). This protocol enables the to query the display's non-volatile memory, typically an , to retrieve configuration details without requiring bidirectional communication during the read process. The DDC operates as a master-slave system where the acts as the master, initiating reads from the display's slave address (0x50 for EDID and DisplayID data). Both standards utilize the Enhanced DDC (E-DDC) extension, which maintains a 128-byte block size for compatibility, allowing DisplayID structures to be embedded within or appended to EDID blocks in the same storage. This design facilitates coexistence, where a display can provide an initial EDID base block followed by DisplayID extension blocks if supported, enabling legacy sources to read basic data while modern sources access extended information. E-DDC's segment pointer mechanism further supports this by addressing up to 128 segments of 256 bytes each (32 KB total), though DisplayID often aligns with the 128-byte granularity for seamless integration. Data integrity in transmission is ensured through per-block checksums in both EDID and DisplayID, where each 128-byte block includes a one-byte calculated as the of the sum of all preceding bytes, allowing to verify completeness during reads. The protocols are inherently read-only from the display perspective, with no write capability to the over DDC to prevent unauthorized modifications. Transmission occurs at fast-mode speeds up to 400 kHz clock rate, providing sufficient bandwidth for block retrieval within typical hot-plug detection timelines, and DisplayID blocks are sequenced after any EDID base block to maintain .

Key Differences and Improvements

DisplayID addresses several limitations of the (EDID) standard by introducing a more flexible and extensible , primarily through its use of variable-length data blocks rather than EDID's fixed 128-byte blocks, which impose practical constraints on the amount of information that can be conveyed. While EDID relies on a rigid format with a limited number of extension blocks—typically capped at around 18 in common implementations—DisplayID supports an unlimited number of self-contained blocks, enabling future-proofing for evolving display technologies without requiring complete overhauls of the standard. This modular approach allows for the inclusion of diverse data types in a clear, unambiguous manner, contrasting with EDID's legacy constraints that often lead to incomplete or truncated capability reporting. A key improvement lies in DisplayID's enhanced support for advanced display parameters absent or inadequately handled in EDID, such as non-VESA timings, formula-based calculations for precise timing derivations, and dynamic ranges including (HDR) specifications with expanded parameters. Unlike EDID, which is limited to predefined VESA-standard timings and struggles with custom or emerging formats, DisplayID accommodates diverse timing standards and enables detailed, calculated modes for optimized performance. Furthermore, DisplayID provides superior handling of multimedia and configuration features, including new audio standards, stereo formats, tiled display topologies for multi-panel setups, and vendor-specific extensions that allow manufacturers to define custom resolutions, refresh rates, and formats. These capabilities make DisplayID particularly suited for modern applications like headsets and high-end . Resolution support represents another significant advancement, with DisplayID 2.0 extending field sizes to handle up to 16K resolutions (15360 × 8640), far surpassing EDID's practical limit of around (4096 × 2160) due to its constrained data fields and timing descriptors. This improvement supports higher refresh rates, such as 120 Hz and above, along with Adaptive-Sync for variable refresh rates, enabling smoother visuals in demanding scenarios. In practice, many displays report both EDID and DisplayID data via the shared /Command Interface (DDC/CI) transmission method, but modern operating systems prioritize DisplayID for advanced configurations to leverage its richer feature set. This transitional approach ensures while encouraging adoption of DisplayID's improvements for optimal plug-and-play functionality.

General Data Structure

Header Format and Checksum

The DisplayID standard utilizes a 128-byte block structure to maintain compatibility with existing EDID frameworks while enabling more flexible data organization. The first byte of each 128-byte extension block functions as the extension tag, designated as 0x70 for all DisplayID versions, allowing systems to identify and process the block accordingly. Within the block header, byte 0 is the extension tag (0x70), byte 1 is the revision number (), and byte 2 specifies the length of the DisplayID data (). Internal data within the have their own 2-byte headers, where the second byte encodes the in bits 7-4 and a length field in bits 3-0. These fields ensure proper interpretation across implementations. The length field specifies the extent of the data , facilitating variable content within the fixed size. Block validation relies on a computed as the sum of all bytes in the block modulo 256, which must equal zero for the block to be considered valid; this mechanism detects transmission errors and maintains throughout the chain. The checksum byte is positioned at the end of the block. In configurations involving multi-block reports, such as those for tiled or complex displays, sequence numbers are incorporated to preserve the intended order of blocks during assembly and processing, preventing misinterpretation of interdependent data.

Block Organization and Types

DisplayID employs a modular, of data into distinct blocks, enabling flexible arrangement and scalability for conveying display capabilities. Primary blocks provide core identification and essential parameters, such as manufacturer details and basic display characteristics, forming the foundation of the . Secondary blocks expand on timings and features, detailing supported video modes and operational ranges, while tertiary blocks handle extensions for specialized functionalities like advanced interfaces or vendor extensions. This layered approach ensures that essential information is prioritized, with optional elements appended as needed. The structure categorizes blocks into several types, each tagged for identification and containing specific display-related data. Identification blocks, for example, include product identification data that specifies the manufacturer, model, and of the . Parameter blocks encompass range limits and , such as physical dimensions, color characteristics, and supported bit depths, providing context for operational boundaries. Timing blocks vary in format, including detailed timings for precise pixel clock and sync specifications, short timings for compact descriptions, and formula-based timings derived from standards like VESA's Generalized Timing . Interface blocks address connectivity aspects, such as interfaces for video input types and stereo or audio support for enhanced capabilities. Vendor-specific blocks allow manufacturers to include proprietary data without conflicting with standard elements. Blocks are chained sequentially within the overall , with optional blocks inserted as required, and unused bytes padded with zeros to align to 128-byte boundaries for with protocols. This padding ensures structural integrity without altering the meaning of active data. The design supports extensibility by assigning unique tags to new block types in subsequent versions, preserving and allowing seamless integration of emerging features like tiled topologies or power sequencing without modifying existing blocks. A per-block validates across the chain.

DisplayID 1.3

Identification Blocks

In DisplayID 1.3, the Identification Blocks provide foundational information about the , enabling devices to recognize the product and its basic operational parameters. These blocks are mandatory for compliance and form the core of the standard's modular structure, which allows for flexible extension while maintaining with earlier identification standards. The blocks are organized as variable-length data units within the overall DisplayID container, each beginning with a byte identifying its type, followed by revision and length fields. The Product Identification Block (tag 0x00) uniquely identifies the display hardware and its manufacturing details. It includes a 3-byte Vendor ID, encoded as an IEEE OUI (Organizationally Unique Identifier) in big-endian format, representing the manufacturer's 3-character ASCII code derived from the Plug and Play ID system. This is followed by a 2-byte Product ID, a manufacturer-assigned 16-bit code distinguishing specific models within the vendor's lineup. The block also contains a 4-byte serial number, a 32-bit unique identifier for individual units, and manufacturing date fields: a 1-byte week (0-52, where 255 indicates model year tagging) and a 1-byte year (offset from 2000, with 0 unspecified). An optional variable-length product description string may follow, padded to the block's length. This block ensures traceability and inventory management in supply chains. The Display Parameters Block (tag 0x01) describes essential physical and scanning attributes of the display. It specifies the as a 1-byte value, encoded as (ratio - 1) × 100 (ranging from 1.00 to 3.55), allowing source devices to adjust scaling accordingly. Scan support is indicated in a 1-byte feature flags field, where specific bits denote capabilities such as scanning (bit 0) and interlaced scanning (bit 1), ensuring with various signal formats. Surround support, for multi-panel or tiled configurations, is flagged in bit 2 of the same field, providing context for resolutions in timing blocks without detailing timings themselves. Additional fields include image size in millimeters (2 bytes each for width and ), native dimensions (2 bytes each), gamma as a 1-byte value ((gamma × 100) - 100, ranging 1.00-3.54), and color bit depths (1 byte, with lower 4 bits for native panel depth and upper 4 for overall ). These parameters aid in initial setup and aspect-correct rendering. The Color Characteristics Block (tag 0x02) defines the display's for accurate reproduction. It begins with a 1-byte header specifying the revision (bits 2:0, typically 1 for DisplayID 1.3) and (bit 7: 0 for CIE 1931 xy, 1 for CIE 1976 uv'). A 1-byte field indicates the number of primaries and s (up to 16), followed by variable 3-byte entries for each: 12-bit fractional coordinates for red, green, blue primaries (x/y or u'/v'), and the . Gamma is integrated via a transfer characteristic identifier in the header (bits 6:3), selecting predefined curves such as (code 0, gamma ≈2.2 with linear segment) or RGB (code 3, gamma 2.2), ensuring support for wide-gamut workflows. The block supports explicit compliance (matching IEC 61966-2-1 primaries and D65) and RGB (matching Adobe's 1998 specification with D65 ), allowing sources to select appropriate color profiles without overdriving the display. This facilitates professional applications like photo editing by prioritizing verifiable color accuracy over exhaustive gamut mapping.

Parameter and Color Blocks

In DisplayID 1.3, the Parameter and Color Blocks encompass data structures that convey the display's core operational characteristics and colorimetry details, enabling source devices to optimize signal output for compatibility and performance. These blocks are optional but recommended for comprehensive display description, following the Identification Blocks in the overall data structure. The Display Parameters block (tag 0x01) specifies fundamental physical and timing-related attributes of the display, serving as a basis for preferred timing selection. It includes the physical image size in millimeters (horizontal and vertical, encoded with 0.1 mm precision), the in pixels (horizontal and vertical pixel counts), and feature flags indicating support for aspects such as continuous , interlaced modes, and viewing. Additionally, it defines the as a 1-byte value encoded as ((gamma × 100) - 100, ranging from 1.00 to 3.55), the management mode, and color bit depths (overall and native, up to 16 bits per color channel). The here implies the preferred timing mode, typically at standard vertical rates derived from associated range limits, while linking to the product from Identification Blocks for context-specific application. This block ensures sources can configure outputs matching the display's inherent capabilities without exceeding hardware limits. The Color Characteristics block (tag 0x02) details the display's color reproduction capabilities, focusing on transfer functions, supported color spaces, and related limits to facilitate accurate . It begins with a 1-byte header specifying the revision (bits 2:0) and color space (bit 7: 0 for CIE 1931 xy, 1 for CIE 1976 uv'), with a identifier (bits 6:3, supporting options like sRGB gamma 2.2, BT.709, or ). The block specifies the number of white points and primaries, with flags for temporal dithering and color space identifiers (e.g., , BT.601, or Adobe RGB), allowing up to multiple simultaneous color spaces. Chromaticity coordinates for red, green, blue primaries, and white points are encoded in 12-bit fixed-point format (0.000-1.000 range, with 1/4096 precision), enabling precise color gamut mapping. limits are indirectly supported through these coordinates and transfer functions, which inform maximum brightness and contrast ratios without explicit peak values in this block. This structure promotes in color-critical applications by providing source devices with verifiable data. The Video Timing Range Limits block (tag 0x09) outlines the operational boundaries for video signals, specifying minimum and maximum values for key timing parameters to guide mode selection. It encodes the clock range in kHz (minimum across three bytes, maximum similarly, supporting up to 1,000 MHz), frequency limits in kHz (minimum and maximum), and blanking minimum in . Vertical parameters include minimum in Hz, maximum , and minimum vertical blanking in lines. Support flags indicate compatibility with timing formulas such as GTF (Generalized Timing Formula) and CVT (Coordinated Video Timings), including secondary GTF curve offsets for fine-tuned margins. These ranges ensure sources generate timings within the display's safe operating envelope, preventing artifacts from overdrive or underscan, and complement the preferred timing from the Display Parameters block by defining allowable and vertical rates. For example, a typical block might specify a clock up to 594 MHz, frequencies from 15 to 160 kHz, and vertical rates from 24 to 144 Hz, with GTF and CVT enabled.

Timing Blocks

Timing blocks in DisplayID 1.3 specify the video timing modes supported by a display, enabling sources to select appropriate resolutions, refresh rates, and parameters for optimal signal compatibility. These blocks are modular data structures within the overall DisplayID framework, each identified by a unique tag byte that determines the format and content, such as detailed or compact representations of and vertical timings. Unlike range limits defined in blocks, timing blocks enumerate specific, pre-defined modes that the display can handle without derivation. Stereo support is flagged in these blocks via specific bit fields, allowing sources to configure dual-stream or frame-packed modes. The Type I Detailed Timing block (tag 0x03) uses an 18-byte structure to describe a single video timing mode in full detail, similar to the detailed timing descriptors in legacy EDID standards but adapted for DisplayID's extensible format. It includes the pixel clock in MHz (encoded in two bytes, supporting up to approximately 655 MHz), and vertical active sizes in pixels and lines, blanking intervals, front and back margins, and sync pulse widths, all specified in pixels or lines. Sync polarities are indicated as positive or negative for and vertical signals, with additional flags for interlaced scanning, preferred timing status, modes, and . This format allows for arbitrary custom timings beyond standard resolutions, providing precise control over signal parameters like a 1920x1080 mode at 60 Hz with specific margins for reduced . Type II (tag 0x04) and Type V (tag 0x11) Short Timing blocks offer compact representations for common timings, using fewer bytes than Type I to efficiently list multiple modes within space-constrained blocks. These share a structure with Type I for core fields like clock, active and blanking regions, margins, sync widths, and polarities, but omit some optional flags to reduce overhead, making them suitable for enumerating standard modes such as VESA Timings (DMT). For instance, they support quick specification of 1024x768 at 75 Hz with minimal blanking for legacy compatibility. Type III (tag 0x05) Short Timing further simplifies this by focusing on horizontal active s, vertical active lines (inferred or compactly encoded), in Hz, interlacing flag, preferred status, and a timing identifier (e.g., CVT standard or reduced blanking), without explicit pixel clock or detailed margins, ideal for generated timings within defined ranges. The Type IV Short Timing block (tag 0x06) provides legacy support for older timings, using a compact format that references established VESA standard timings or simple enumerations without full detailed parameters. It encodes horizontal and vertical active sizes, sync widths, and polarities in a minimal byte layout, primarily for with pre-DisplayID displays that rely on basic DMT or GTF-derived modes, such as 640x480 at 60 Hz for early VGA-era devices. This block ensures interoperability in mixed environments without requiring extensive data. Type VI Detailed Timing (tag 0x13) extends the Type I format for secondary or auxiliary timings, using an enhanced 18-byte or similar structure to specify additional modes beyond the primary set, including support for higher resolutions or variant scan types. It incorporates the same core elements— clock, active/blanking regions, margins, sync details, polarities, and flags for interlacing, preference, stereo, and —but allows for extensions like secondary GTF curves or tiled configurations in preparatory use cases. This enables displays to report multiple detailed modes, such as a secondary 2560x1440 at 120 Hz alongside a primary timing.

Interface and Device Blocks

The Display Device Data block, identified by tag 0x0C, encapsulates key physical and operational characteristics of the in DisplayID 1.3. This 13-byte (minimum) block specifies the , distinguishing between types such as or color CRTs, passive TN LCDs, or active TFT LCDs via a dedicated technology code in byte 3. It also details capabilities, allowing source devices to adjust signal output for based on the display's operational modes, encoded in byte 4 to indicate configurations like direct-view reflective or setups under ambient or backlit conditions. Additionally, the block reports response time in milliseconds (byte 15), typically representing white-to-black transition duration when the high bit is set, aiding in assessments of motion handling. Other attributes include physical dimensions (bytes 5-8 for width and height in pixels plus one), (byte 9 as a factor of 100), (byte 10), sub-pixel layout (byte 11, e.g., RGB vertical stripes), and (bytes 12-13 in hundredths of a millimeter). The Display Interface Data block, tagged as 0x0F with a minimum length of 10 bytes, defines the connection and signal handling specifications supported by the display. It enumerates interface types in byte 3, covering analog options like 15-pin HD/VGA and digital standards such as or , thereby indicating whether the connection is analog or digital. Pixel encoding support is outlined in bytes 5-7, with bit fields specifying compatible bit-per-component depths for RGB 4:4:4, 4:4:4, and 4:2:2 formats (e.g., 6-12 bpc mappings). Sync separation details are integrated into the interface type definition, enabling separate horizontal/vertical sync signals for analog connections or embedded sync for digital ones. Further fields cover interface standard versions (byte 4, major/minor), content protection mechanisms like HDCP (byte 8 with version in byte 9), and spread spectrum clocking (byte 10, e.g., down-spread percentages for mitigation). In DisplayID 1.3 extensions, optional hints for support and audio capabilities may appear in related blocks, such as timing tags (e.g., 0x03 or 0x04) where stereo modes are flagged via bit fields, or parameter extensions indicating integrated audio speakers. These hints complement the core and data by signaling advanced features without altering the primary hardware descriptions.

Extension Blocks

In DisplayID 1.3, extension blocks serve as optional components that augment the standard data structure with specialized information, typically following the core identification, parameter, timing, interface, and device blocks to extend display capabilities without altering the base format. These blocks leverage the variable-length design of DisplayID, where each block includes a tag byte, length field, and payload, allowing up to 256 bytes per block for flexible data inclusion. Tiled display configurations are supported through dedicated extension blocks or parameters in timing blocks, enabling multi-panel setups with multiple video processors. A key extension is the (Consumer Technology Association) block, tagged as 0x81 in legacy configurations, which encapsulates CTA-861 to describe audio formats, video timings, and HDMI-specific features for applications. This block ensures compatibility with standards by mapping EDID-style extension into the DisplayID framework. Another prominent extension is the vendor-specific block, identified by tag 0x7E, which permits manufacturers to embed details such as custom or identifiers while adhering to the overall block structure. Non-standard extensions in DisplayID 1.3 utilize padding bytes—typically set to zero—to align data fields and reserve space within blocks, preventing parsing errors in variable-length payloads. Sequence numbers in the block headers further support chaining of these extensions, ensuring orderly traversal from core blocks to optional ones without gaps. DisplayID 1.3 extension blocks maintain compatibility with EDID extensions in mixed reports by being placed as one or more 128-byte blocks within the EDID structure, allowing hybrid configurations where legacy EDID base blocks coexist with DisplayID data over the . This approach enables older graphics hardware to read essential timing and identification from the EDID portion while newer systems access enhanced details from DisplayID extensions.

DisplayID 2.0

Core Identification Blocks

In DisplayID 2.0, the Core Identification Blocks provide essential static information about the , facilitating accurate plug-and-play detection and configuration for advanced applications such as high-resolution monitors, HDR-enabled TVs, and multi-panel setups. Released by VESA in and clarified in version 2.1, this version introduces a modular data block that expands beyond the fixed-format limitations of DisplayID 1.3, allowing for flexible, self-contained descriptors up to 256 bytes each to accommodate modern display complexities like 4K+ resolutions and Adaptive-Sync. These blocks—Product Identification (0x20), Display Parameters (0x21), and Container ID (0x29)—must appear in every qualifying DisplayID 2.0 descriptor, with the Product Identification block required as the first sub-block to ensure reliable device recognition. The Product Identification Block (tag 0x20) enhances vendor, product, and serial fields to support detailed device profiling in contemporary ecosystems, including optional ID integration for hierarchical assemblies. It begins with a 3-byte Vendor (OUI) or ASCII vendor name, followed by a 2-byte , a 4-byte , and details such as a 1-byte week (1-52, where 0xFF indicates unavailable) and a 1-byte year offset from 2000. An additional variable-length Product ID string (up to the block's remaining bytes, preceded by a 1-byte field) allows for descriptive model naming, while support for container IDs enables linking to multi-device topologies without . This block's structure, up to 256 bytes, generalizes earlier fixed identification formats, promoting scalability for and wearable s. The Display Parameters Block (tag 0x21) delivers updated indicators for , type, and preferred mode, enabling precise rendering decisions for diverse display orientations and capabilities. Key fields include horizontal and vertical image sizes in millimeters (2 bytes each, scaled by 10 for sub-millimeter precision), counts for width and height (2 bytes each), and a 1-byte feature support flags bitfield that denotes options like de-interlacing or preferred timing validity. is encoded as a 1-byte value representing (value + 100)/100 for ratios like 16:9, while type ( or interlaced) and preferred mode are inferred from associated flags and resolution data; gamma is specified as a 1-byte value for (value + 100)/100 approximation if not 0xFF (indicating default). Dynamic bit-per-channel (BPC) support is detailed in a 1-byte field, with 4 bits each for native and overall ranges (adding 1 to the value for actual BPC, e.g., 8-12 bits). These enhancements support wide color gamut (WCG) and by including metadata like and primaries, ensuring compatibility with high-dynamic-range content. The Container ID Block (tag 0x29) addresses identification needs for tiled and multi-panel displays, incorporating topology mapping to unify disparate components into a cohesive logical unit. It generates a unique 128-bit Container ID derived from the display's manufacturer ID, product ID, and (sourced from the EDID or Product Identification block if absent), preventing conflicts in multi-stream transport (MST) environments like daisy-chaining. This block enables Windows and other systems to visually associate related peripherals—such as audio endpoints, touch controllers, or sub-panels—reducing setup complexity and wire clutter in or modular configurations. By providing explicit topology descriptors, it supports advanced device discovery via WDDM interfaces, ensuring grouped devices share a common identifier for streamlined user interfaces and APIs.

Parameter and Timing Blocks

In DisplayID 2.0, the Parameter and Timing Blocks encompass specialized data structures that define core display attributes and video signal timings, supporting modern features like high resolutions and dynamic performance adjustments. These blocks utilize a modular format where each begins with a tag byte identifying its type, followed by a length byte and payload data, allowing for efficient parsing by host devices. The 0x21 Display Parameters block and the timing-related blocks (0x22 through 0x25) collectively enable precise configuration of aspect ratios, colorimetry, and refresh behaviors, addressing limitations in prior standards by accommodating 4K+ resolutions and emerging technologies. The 0x21 Display Parameters block conveys essential display characteristics, including physical dimensions, native resolution, and support for advanced rendering features. It spans 29 bytes and includes fields for image size in millimeters (calculated as horizontal: ((bytes 4<<8) + byte 3)/10.0 and vertical: ((bytes 6<<8) + byte 5)/10.0), native pixel resolution (horizontal: (bytes 8<<8) + byte 7; vertical: (bytes 10<<8) + byte 9), and aspect ratio management (e.g., ((byte 13 + 100.0)/100.0) for local aspect scaling). Feature flags in byte 11 indicate capabilities such as de-interlacing and audio support, while dynamic bit-per-channel (bpc) values specify native (byte 14 & 0xf + 1) and overall ( (byte 14 >> 4) & 0xf + 1 ) color depths. This block also embeds HDR metadata, such as maximum luminance in cd/m² for static metadata type 1 (SMPTE ST 2084), and adaptive sync flags to signal variable refresh rate compatibility, ensuring seamless integration with technologies like FreeSync or G-Sync. Gamma values ((byte 12 + 100.0)/100.0 if not 0xFF) further refine color reproduction. The 0x22 Type VII Detailed Timings block supports high-resolution modes through a 12-byte format per timing entry, allowing up to multiple entries within a variable-length . Each entry starts with a 24-bit little-endian clock value in units of 10 kHz from bytes 0-2, followed by codes (bits 0-3 of byte 3 for ratios like 16:9 or 4:3) and flags for interlacing (bit 4 of byte 3), stereo modes ((bits 5-6 of byte 3): frame packing, side-by-side, top-bottom), and preferred timing (bit 7 of byte 3). Horizontal active s are 1 + (byte 4 | (byte 5<<8)), with vertical active s similarly derived from bytes 12 and 13, adjusted for interlacing by doubling vertical values. Blanking and sync details include horizontal front porch (bytes 6-7), sync width (bytes 8-9), and back porch (bytes 10-11), alongside vertical equivalents (bytes 14-19), enabling precise control over signal timing for resolutions exceeding . This format facilitates high-refresh-rate support, with optional extensions for 4:2:0 in UHD modes. The 0x23 Type VIII Enumerated Timing Code block references predefined standard modes via lookup tables, promoting without exhaustive detailed listings. It uses a variable-length where each entry specifies a timing ID, categorized by type flags (e.g., DMT for monitors, VIC for CEA-861 video interface codes, or HDMI VIC extensions). For instance, 97 corresponds to (3840x2160) at 60 Hz, while others cover common resolutions like at 120 Hz. The block parses IDs through functions mapping to established standards, ensuring hosts can quickly identify and apply supported modes such as 2560x1440 at 144 Hz from the DMT table. This approach reduces data overhead while covering a broad range of consumer and professional timings. The 0x24 Type IX Formula-Based Timings block generates timings algorithmically using GTF (Generalized Timing Formula) or CVT (Coordinated Video Timings) parameters, ideal for custom resolutions. Each entry (minimum 3 bytes) includes bits (0-3 of byte 0: e.g., 16:10), reduced blanking support ((bits 4-6 of byte 0)==1 for CVT-RB), preferred flag (bit 7 of byte 0), horizontal active pixels (8 + 8 * byte 1), and multiplier (1 + (byte 2 & 0x7F) in Hz increments). Vertical active is derived as (horizontal active * vertical ratio / horizontal ratio), with the edid_cvt_mode function applying CVT v1.2 or v2 formulas for blanking intervals, front porches, and sync polarities. This enables generation of timings for non-standard s, such as ultrawide 21:9 at variable rates, without storing every variant explicitly. GTF support is indicated via flags, providing for legacy systems. The 0x25 Dynamic Video Timing Range block defines operational limits for variable refresh rates, with an 18-byte to specify minimum and maximum values for pixel clocks, , and blanking. Pixel clock ranges from ((bytes 3 | (4<<8) | (5<<16))/100.0) MHz minimum to ((bytes 6 | (7<<8) | (8<<16))/100.0) MHz maximum, supporting overclock scenarios up to 1 GHz. frequency limits (bytes 9-10 in kHz) and minimum blanking (bytes 11-12 ) pair with vertical refresh ranges (bytes 13-14 Hz, e.g., 48-144 Hz for adaptive sync), and minimum vertical blanking (bytes 15-16 lines). flags in byte 17 denote support for interlaced modes, CVT compliance, and seamless rate switching, crucial for variable refresh technologies that mitigate tearing in applications. This block ensures safe boundaries, including overclock limits to prevent .

Feature and Interface Blocks

In DisplayID 2.0, the and Blocks provide detailed capabilities for advanced display functionalities, enabling systems to configure interfaces for high-fidelity video, audio, and multi-panel setups. These blocks extend beyond basic timing and parameters by specifying support for modern encoding schemes, stereoscopic rendering, and tiled configurations, which are essential for applications like professional video production and immersive displays. The 0x26 Display Interface Features block outlines the display's supported pixel encodings and audio capabilities to ensure with diverse content streams. It specifies bit-per-component (bpc) depths for RGB encoding, ranging from 6 to 16 bpc, allowing for progressive color precision in graphics rendering. For formats, it details support for at similar bpc levels, 4:2:2 at 8 to 16 bpc, and at equivalent depths, with a minimum for operations calculated as 74.25 MHz multiplied by a scaling factor to optimize in video-heavy scenarios. Audio support is limited to sampling rates of 32 kHz, 44.1 kHz, and 48 kHz, facilitating synchronized playback in multimedia interfaces without advanced multi-channel details. Additionally, it enumerates color spaces such as , BT.709, and BT.2020 alongside electro-optical transfer functions (EOTFs) for up to seven combinations, aiding in accurate wide color (WCG) and (HDR) signal handling. Multi-stream transport capabilities, while implied for interfaces like , are not explicitly quantified in this block but align with overall timing ranges for seamless multi-display operation. The 0x27 Stereo Display Interface block defines configurations for 3D and stereoscopic content delivery, supporting various modes to accommodate legacy and emerging technologies. It identifies stereo mode types including field sequential (alternating left/right fields per ), side-by-side (horizontal half-resolution packing of left and right images), pixel interleaved ( or line-alternated s), dual (separate streams per eye), multi-view (for multiple observers), and stacked (vertical packing). For packing in field sequential modes, it specifies left/right polarity to ensure correct eye assignment during rendering. Side-by-side formats include bit flags for image mirroring and eye identification, preventing inversion artifacts in 3D playback. The block also references associated timing codes, such as Detailed Monitor Timings (DMT), Video Identification Codes (VIC), or VIC, to link stereo support with compatible refresh rates up to those in the core timing blocks. These features enable precise for active shutter glasses or passive polarized systems without requiring proprietary extensions. The 0x28 Tiled Display block describes the architecture of multi-panel displays, such as video walls, by detailing panel arrangements and compensation mechanisms for seamless viewing. It encodes the number of horizontal and vertical tiles (each from 1 to , derived from bit fields plus one), along with the specific location of the current within using coordinate offsets. resolution is provided as active width and (each up to 65,535 ), scaled by a multiplier factor for high-resolution arrays. For bezel compensation, it lists offsets for top, bottom, left, and right edges (0 to 255 per side, multiplied by the scaler), allowing software to adjust content and avoid distortions at seams. Capability bits indicate behaviors for single-tile versus multi-tile operation, such as or independent , which supports daisy-chain configurations in link interfaces like MST. Manufacturer and product identifiers, plus numbers, are included for unique topology identification in large installations. This block ensures systems can reconstruct the full virtual canvas from individual panels efficiently.

Extension and Vendor Blocks

In DisplayID 2.0, extension and vendor blocks enable the inclusion of optional, standardized, and data beyond core display parameters, supporting advanced interface features and manufacturer customizations within the modular block architecture. These blocks follow the established sequence of data blocks, each beginning with a one-byte and field to delineate content, allowing systems to parse and utilize only relevant information for plug-and-play compatibility. The Vendor-Specific Data block, tagged as 0x7E, reserves a 112-byte payload for proprietary extensions, prefixed by a three-byte Organizationally Unique Identifier (OUI) to uniquely attribute data to a manufacturer. This structure accommodates custom features such as firmware versioning, device-specific calibration profiles, or vendor-defined performance metrics, ensuring interoperability while permitting innovation without altering the core specification. The CTA DisplayID block, tagged as 0x81, integrates extensions from the CTA-861 standard tailored for HDMI interfaces, conveying capabilities like Consumer Electronics Control (CEC) for device command passing, Audio Return Channel (ARC) for bidirectional audio transmission, and related audio return functionalities. This block translates traditional CTA-861 timing and audio/video descriptors into the DisplayID format, enabling HDMI sinks to report enhanced multimedia support efficiently. Block chaining in DisplayID 2.0 sequences multiple blocks contiguously after the header, with each block's length byte specifying the offset to the next, supporting structures up to 256 bytes total while maintaining extensibility. Versioning occurs at the overall DisplayID level via a header field indicating 2.0 compliance, supplemented by per-block revision bytes to accommodate iterative updates and ensure backward compatibility for emerging features.

Later Versions and Extensions

DisplayID 2.1a Updates

DisplayID 2.1a, released on March 18, 2024, represents a minor revision to the VESA Display Identification Data standard, aligned with the 2.1a specification update from December 2023 to address advancements in cable performance and bandwidth management. This version focuses on improving compatibility for high-performance display connections by incorporating support for emerging transmission capabilities without overhauling the core architecture. Key enhancements in DisplayID 2.1a include extended support for Ultra High Bit Rate (UHBR) 20 link rates, enabling higher transmission up to 80 Gbps over four lanes. Passive cable lengths are doubled to a maximum of 2 meters for UHBR13.5 and UHBR20 connections, facilitating reliable performance in compact setups like configurations or environments. Additionally, the standard refines multi-resolution combinations, allowing displays to advertise optimized timing sets for scenarios such as 8K at 120 Hz or dual at 240 Hz, enhancing plug-and-play efficiency for next-generation GPUs and panels. At the block level, DisplayID 2.1a introduces minor header modifications to explicitly tag the data structure as version 2.1a, ensuring source devices can accurately parse the extended capabilities. Interface blocks receive added fields dedicated to DisplayPort 2.1a certification, such as indicators for supported cable types (e.g., DP54 UHBR) and maximum link rates, which aid in negotiation during connection initialization. These changes build directly on the 2.0 structures as a base for continuity. Backward compatibility remains a , with full support for all DisplayID blocks to ensure seamless operation across legacy and modern hardware. Optional new timing ranges are provided for advanced features, allowing incremental adoption without requiring immediate hardware redesigns.

Integration with Modern Standards

DisplayID plays a central role in contemporary display ecosystems by providing a flexible, modular framework for communicating device capabilities over interfaces like and . In DisplayPort 1.4 and subsequent versions, DisplayID is mandatory for external interfaces to enable certification and support advanced functionalities, including (DSC) for bandwidth-efficient high-resolution transmission and Multi-Stream Transport (MST) for daisy-chaining multiple displays. This integration ensures seamless plug-and-play operation, allowing sources to query and adapt to sink capabilities such as variable refresh rates and HDR metadata directly from DisplayID blocks. For 2.0 and later, DisplayID extends the legacy EDID structure via the (DDC), facilitating compatibility with high-bandwidth modes while conveying essential parameters for features like /60Hz support and content protection. This backward-compatible approach allows sources to leverage DisplayID's enhanced data blocks for improved interoperability without requiring full protocol overhauls. In operating systems, DisplayID parsing is handled natively; Linux's (DRM) kernel subsystem includes dedicated modules for interpreting DisplayID structures, enabling accurate mode setting and hotplug detection across graphics drivers. Windows similarly processes DisplayID through its display stack, supporting extensions for specialized monitors like head-mounted displays. Looking ahead, DisplayID's evolving standards, such as and beyond, accommodate ultra-high resolutions like 8K and 16K through expanded timing blocks and pixel clock support, positioning it for next-generation applications. It also enables tiled display configurations critical for / ecosystems, where multiple panels form immersive environments by declaring and synchronization data in dedicated blocks. These advancements ensure DisplayID remains adaptable to emerging display paradigms, including wearable and head-mounted devices. Implementation of DisplayID introduces parsing challenges due to its variable-length, block-based format, which can lead to inconsistencies if sources mishandle optional or vendor-specific extensions. Developers often rely on open-source tools like edid-decode to validate and debug DisplayID data, extracting timings, features, and checksums to troubleshoot compatibility issues in real-world deployments. Ongoing kernel enhancements, such as support for new DisplayID types in , address these complexities by standardizing interpretation across diverse hardware.

References

  1. [1]
    VESA Refreshes DisplayID Standard to Support Higher Resolutions ...
    Sep 23, 2013 · The DisplayID standard was developed by the VESA members to define data structures that a video display uses to describe its physical and ...
  2. [2]
    VESA Rolls Out DisplayID Version 2.0 Standard to Optimize Plug ...
    Nov 14, 2017 · The new version 2.0 of this universal display standard simplifies connecting and configuring modern display products, including PC monitors, consumer TVs and ...
  3. [3]
    [PDF] VESA Enhanced Display Data Channel (EDDC) Standard Version 1.2
    Dec 26, 2007 · This communication channel offers basic configuration information plus a standard way of communicating advanced functionality.Missing: extensible | Show results with:extensible
  4. [4]
    [PDF] Understanding EDID - Extended Display Identification Data - Extron
    EDID is a standardized data exchange for a display to communicate its capabilities, like resolution, to a source device, allowing the source to match video ...Missing: extensible | Show results with:extensible
  5. [5]
    VESA Rolls Out DisplayID Version 2.0 Standard to Optimize Plug ...
    Nov 14, 2017 · The new version 2.0 of this universal display standard simplifies connecting and configuring modern display products, including PC monitors, ...
  6. [6]
    CodeLinaro / yocto-mirrors / gitlab / emersion / libdisplay-info · GitLab
    VESA Enhanced Extended Display Identification Data (E-EDID) Standard; Release ... VESA Display Identification Data (DisplayID) Standard; Version 2.1a; 18 March, ...
  7. [7]
    Free Standards - VESA - Interface Standards for The Display Industry
    All new DisplayPort related standards issued by VESA will NOT be available to non-VESA members. You must join VESA to have access to these standards.
  8. [8]
    Display | Microsoft Learn
    Dec 17, 2021 · Windows supports VESA Extended Display Identifier (EDID) descriptors, as well as limited support for DisplayID descriptors. For all ...
  9. [9]
    [PDF] VESA E-EDID Standard Release A2 (EDID 1.4) - Glenwing
    Sep 25, 2006 · Purpose. The E-EDID Standard defines a remotely readable (read by a source) data file stored in an electronic display. The data in this file ...Missing: DisplayID | Show results with:DisplayID
  10. [10]
    Understanding EDID - Extended Display Identification Data - Extron
    EDID was developed by VESA - the Video Electronics Standards Association, with version 1.0 introduced in 1994 within version 1.0 of the DDC standard. See Table ...
  11. [11]
    [PDF] VESA Display Standards Updates
    Oct 10, 2023 · Develops OPEN standards, contribution is open to all companies at. all stages of development. Page 4. VESA 2023 Membership.<|control11|><|separator|>
  12. [12]
    Documentation for <libdisplay-info/displayid.h> - Freedesktop.org
    Get type III timings from a DisplayID data block. The returned array is NULL-terminated. Returns NULL if the data block tag isn't ...
  13. [13]
  14. [14]
    VESA® DisplayID 1.3 Standard Overview | GraniteRiverLabs Taiwan
    Dec 28, 2021 · 第一個Byte為Product Identification Data Block的Block Tag “00h”,隨後的Byte會詳細的說明該產品的製造日、Vendor ID、Product code、Serial number等等 ...
  15. [15]
    [PDF] qdPrime™ Test Suite: Getting Started - Teledyne LeCroy
    18 [DSC] Vesa Timings test with EDID DisplayID 1.3 Block. Verifies the video according to the Vesa Timings provided in the DisplayID 1.3 Block. QDPRIMESOURCE.
  16. [16]
    File: parse-displayid-block.cpp - Debian Sources
    ... DisplayID 1.3: case 0x00: data_block_oui("Product Identification Data Block (" + utohex(tag) + ")", x + 3, len, &ouinum, true, true, true); dooutputname ...
  17. [17]
    EDID and DisplayID | Basic Input/Output
    Apr 25, 2023 · The standards are called Display Data Channel, Extended Display Identification Data, and more recently, DisplayID.
  18. [18]
    parse-displayid-block.cpp - platform/external/edid-decode - Git at Google
    ### Summary of Parsing Logic for DisplayID Block Types 0x0C and 0x0F
  19. [19]
    Container ID Support for Displays - Windows drivers | Microsoft Learn
    Dec 14, 2021 · Describes Container ID support for displays--visual representation of devices that are embedded within a display or monitor device.
  20. [20]
    Learn EDID - EdidCraft
    DisplayID Extension (Tag: 0x70). VESA Standard. Advanced extension for high-resolution displays, tiled displays, and complex display configurations. Timing ...
  21. [21]
    README.md · main · Simon Ser / libdisplay-info · GitLab
    ### Summary of DisplayID 2.1a Support and Related Details
  22. [22]
    [PDF] VESA Workshop Seoul Korea 2024
    Oct 10, 2024 · Industry's first publicly open standard for front-of-screen performance of variable refresh rate displays. • More details available at https:// ...
  23. [23]
    VESA Announces Updated DisplayPort 2.1a Specifications to Allow ...
    Jan 8, 2024 · VESA Announces Updated DisplayPort 2.1a Specifications to Allow for Longer Cables. CES Press Release by. TheLostSwede. Jan 8th, 2024 13:44 ...
  24. [24]
    [PDF] VESA Adaptive-Sync Display CTS r1.1a, 5/19/23
    May 19, 2023 · This section describes the test criteria for the DisplayID or legacy EDID refresh rates that define the Adaptive-Sync operation refresh rate ...
  25. [25]
    EDID Extension for Head-Mounted and Specialized Monitors
    Apr 24, 2025 · The structure of EDIDs is described in the "VESA Enhanced Extended Display Identification Data Standard" (E-EDID), see version 1.4, release ...Missing: extensible | Show results with:extensible<|control11|><|separator|>
  26. [26]
    VESA Rolls Out DisplayID Version 2 – Display Daily
    VESA has released a new version of its DisplayID standard that adds support for higher resolutions, HDR, AR and VR and variable and high refresh rates.
  27. [27]
    edid-decode(1) - Arch manual pages
    DisplayID 2.1a: VESA DisplayID Standard, Version 2.1a: DI-EXT: VESA Display Information Extension Block Standard, Release A ... date by the year 2000. This ...
  28. [28]
    [PATCH v2] drm/edid: Implement DisplayID Type IX & X timing ...
    Feb 12, 2025 · [PATCH v2] drm/edid: Implement DisplayID Type IX & X timing blocks parsing ... 0x27 #define DATA_BLOCK_2_TILED_DISPLAY_TOPOLOGY 0x28 ...<|control11|><|separator|>