0

I know how bitmaps work and how pixels are used (binary 0 or 1). I am also aware of RGB but the thing I wonder about is how GPUs know the address of each pixel on a high resolution screen and how the GPU sends information to the pixels. Can anyone answer this?

2
  • stackoverflow.com/questions/7457391/… you can also read more about frame buffers by following the link in the answer. It's pretty interesting stuff.
    – DrZoo
    Commented Sep 29, 2016 at 15:23
  • It doesn't "know" the address of a pixel at all, it doesn't need to. All it needs to do is tell the monitor the data format, the size of the screen as it knows it, and then to send a lot of byte groups that state which colour is next. It's done as a row of data and it's up to the monitor to then decode the data into the signals the panel expects. You need to look at how CRT monitors worked, new monitors work in an effectively similar fashion using digital data
    – Mokubai
    Commented Sep 29, 2016 at 15:24

2 Answers 2

0

A GPU has a piece of memory dedicated to video output. Each pixel has precise address. GPU renders images and places them into this video buffer. Then a dedicated hardware block "scans" this memory and streams the content into video port (VGA, HDMI, DVI, whatever). A monitor receives and displays this information. But isn't this information freely available on some wiki?

0

This is done as simple as copying the whole memory buffer to the output connector at your refresh rate. That is, on a standard, DVI-connected monitor, it would send 60 times per second full frames of 1920x1080 pixels with 24 bit per pixel (8bit RGB depth). This is a lot of data and requires high-quality, short cables.

Internally, it may become a whole lot more complicated. Usually, the video RAM holds 2 or 3 buffers of image data (double-buffering or triple-buffering, to reduce tearing, which essentially means the buffer being send to the output connector isn't modified by the OS drivers).

And it may become even more complicated: The output connector may be analogue which means there will be a DAC that converts each signal to analogue signals. Or, the RAM may use higher bit depth than the monitor (10 bits per color = 30 bits per pixel), graphic cards may use temporal dithering when the output device has lower bit depth (so the error of 2 bits is distributed to the next frame which may result in visible, slight noise but gives better color shading).

And even more complicated: Some GPUs don't arrange their memory in the same way it is displayed on the monitor (lines of pixels from top left to bottom right) but rather arrange their memory into cells (rectangles of image data) - this has to be converted but can result in higher performance of VRAM access because concurrent access from GPU, CPU, and signal processor is better distributed against each other.

So in the basics, it's very simple: data is just copied from the RAM buffer to the output connector pixel by pixel, most of the time altering the image buffer between to copies each time a complete frame was sent. The monitor follows the same timing pattern and draws the pixels. Each frame, the timers will be resynced so the monitor starts over at the top left.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .