Display Sharing is a type of Graphics Sharing / Distributed HMI that is closely related to both GPU Sharing and Surface Sharing. Here we describe the details and why it makes sense to define this category separately.
- The system has the capability to share a physical display across multiple systems.
- Typically a hardware compositor unit, part of or near the Display Controller is involved to combine multiple layers, each with their own bitmap covering the entire screen area) into a final display output. This requires virtualization of the display controller hardware and/or built-in hardware graphics layers.
GPU: Graphics Processing Unit is a hardware circuit optimized for transforming drawing instructions or a scene-graph description, into images (bitmaps) in memory.
Display Controller: The last step in a graphics hardware pipeline. It takes a fully completed flat representation of a picture (i.e. a bitmap) that represents the entire screen area, and outputs the necessary electrical signals for the (LCD) hardware display.
These comparisons aim to further clarify what Display Sharing category is and how to differentiate it:
Display Sharing vs. Virtual Display
We recognized that full-screen output is sometimes sent from one system to another. The transfer itself is basically a surface, but representing an entire screen such that it would normally be sent to a display (see here for comparison to Surface Sharing). The only composition done by the receiving system is normally to place the content into one hardware layer in the shared Display Controller.
- Display Sharing – The act of sharing a physical display through virtualization or hardware-layer composition as part of or near the Display Controller.
- "Virtual Display" – Full display content transferred over a network, often by encoding it as a video stream from one system to another. On the receiving side the content is treated as complete screen content. For disambiguating this with "Surface Sharing", see Virtual Display.
GPU sharing vs. Display sharing:
- GPU Sharing - Multiple systems/masters are simultaneously instructing a single GPU to render bitmap images into memory buffers.
- Display Sharing - Each system/master renders its complete screen content (likely using separate GPUs), which is then combined into a single display output.