Hacker News new | ask | show | jobs
by chmod775 1321 days 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.

2 comments

Why would you buffer? Monitors are capable of playing full-screen video, which implies the ability to update every pixel once per... 30hz? frame, doesn't it?
Because when you want instant switching you need to already have the data you want to display available the moment someone flips the switch.

You can't just tell the computer that you're now interested in the display data of the other display - that would incur latency.

You'll have to be receiving the information for the second display the entire time, storing it in what is commonly called a framebuffer, aka a bitmap in memory somewhere.

Most types of display have such a thing backing them anyways - one way or another - since they need to remember what they're supposed to display.

Okay, I'm willing to wait 1/30th of a second while the screen gets its pixels; is that not an option? Or is there no way to request all pixels and it doesn't send them all every frame?
I don't think I understand what you're saying.

I think you're concerned that because there's "buffers" there would be extra latency? There doesn't have to be.

That's what I'm asking. When the monitor is live, it can draw a complete screen ~30+ times every second, so why does it take more than 1/30th of a second to start from nothing? Then, I speculated that the only reason I could think of was if the graphics card doesn't actually send every pixel every frame, and there's no way for the monitor to request a full refresh.
Monitors don’t request anything. The monitor has to do a basic handshaking/negotiation before it even knows what sort of video stream to expect
It’s ok, I can wait 17ms for the next frame.
With basic analog you could set it up in a way where you would just wait for the next frame (or don't even wait that long), but with the new digital stuff there's bootstrapping/handshaking - whatever you want to call it. It's not so simple anymore.
What could they possibly be doing that takes 4 seconds? That's ~4,000,000,000 instructions on a typical embedded processor.

It's much more likely that the handshaking was implemented by an incompetent organization that doesn't care about quality.

It is extremely odd to see so many people in this thread ignore that a handshake requires billions of instructions to be executed for some reason....
Quite a few monitors support a Picture-in-Picture mode, so they are able to receive and decode two signals at the same time. But if that mode isn't enabled, they only receive one signal.