Hacker News new | ask | show | jobs
by yjftsjthsd-h 1320 days ago
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?
1 comments

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
Ah. And we couldn't stick... What, 4 ints of metadata in the video steam (width, height, depth, frame rate)? Not like we don't have the bandwidth. I can believe that, but it's disappointing that nobody bothered.
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....
One of the grandparents of this comment thread explicitly ignored it; this is a discussion on frame buffering.