top | item 34049112

(no title)

blacklite | 3 years ago

There are hardware limitations that make what you're asking for impossible.

Use software solutions if you actually need instant switch. But you probably don't.

discuss

order

csande17|3 years ago

What's impossible about it? I've seen devices in the past that can combine multiple HDMI signals into a single image (like picture-in-picture, or making one high-res display out of several lower-res video connections). And if you can do that, surely you can do instant switching just by toggling between "full screen input 1" and "full screen input 2" layouts.

beebeepka|3 years ago

Were any of these devices monitors? Were they cheap? Like it or not, price is a major factor.

On top of that, just look around - there is no perfect display,no matter how much one is willing to pay. Every single one has major drawbacks in certain areas.

_rs|3 years ago

What are the hardware limitations? Surely this is possible if there was investment and interest in making this work? Or do the protocols really not allow this?

alin23|3 years ago

Most of the delay is I/O bound. Handshaking happens over the Display Data Channel (DDC) which is a protocol over I²C (a two-wire comunication bus). HDMI/DP/DVI have 2 dedicated wires inside the cable for this, USB-C has to switch over to use differential signaling on pins A8 and B8, and then switch back after communication is done.

The bandwidth of that bus is small indeed, but most of the latency comes from artificial delays and error recovery in code: monitor is sending a message to host then sleeping 30ms to make sure the reply is ready, host doing the same thing, and this happens multiple times to negotiate pixel clock, signal timing, colors, resolution, additional features like suspend/reset/HDR/overscan etc.)

You can see how in the MCCS specification [1] both host and display entrypoints for communication start with a delay: https://shots.panaitiu.com/e8D7tQ

You can also see how that looks in Lunar's DDC code [2] [3].

For now, it's incredible that we actually have such a standard as DDC and most monitors work with most devices. A coordinated effort between monitor vendors and laptop/PC/GPU manufacturers into creating another faster standard with modern technology seems out of the question. But maybe with the advent of Thunderbolt this may change in the future.

[1] https://files.lunar.fyi/mccs.pdf

[2] https://github.com/alin23/Lunar/blob/master/Lunar/DDC/DDC.c#... : Delay on requesting data from monitor

[3] https://github.com/alin23/Lunar/blob/master/Lunar/DDC/DDC.c#... : Delay on communication error before retry

chmod775|3 years ago

In theory you could have a monitor that handles both signals all the time, buffering the output. Then it could switch immediately.

It would however be more expensive, since you would need to duplicate at least some of the electronics within the monitor, a few of which also incur licensing/certification/patent/whatever fees.

randallsquared|3 years ago

> But you probably don't.

What does this statement add, beyond conveying that you don't personally care what the OP wants?