This page contains some free-writing that I think should somehow make it into the Kestrel Concepts Guide, but like a square peg in a round hole, doesn't fit nicely. Requires more thought.
Taken from Mantle Display:
Not all display devices keep their video frame buffer memory in system RAM. Some components, like the MGIA core, do; when video refresh occurs, it steals cycles from the CPU. Thus, this style of "unified memory architecture" can cost the CPU some performance, depending on video characteristics.
+-----+
| |
| CPU |<-----.
| | | ,---------------.
+-----+ | +----------+ | |
`----->| | | |
| Arbiter |<---->| System Memory |
,----->| | | |
+------+ | +----------+ | |
| | | `---------------'
| MGIA |<----'
| |--------> video output
+------+
However, other devices, such as the VDC-II core, relies on a "non-uniform" allocation of memory; the video display uses a dedicated bank of video memory that is out of band from the CPU. These displays tend to deliver higher CPU performance, albeit at the expense of inconvenient display updates.
With this "non-unified" layout, video refresh can occur at the same time as the CPU accessing system memory.
+-----+ ,---------------.
| | | |
| CPU |<---------------*------------->| System Memory |
| | | | |
+-----+ | `---------------'
|
V
.--------.
| VDC-II |
| |--------> video output
| Core |
`--------'
^
|
|
V
.--------------.
| |
| Video Memory |
| |
`--------------'
Taken from Mantle Display: This probably is more relevant when discussing bit blits, and not frame buffer layout.
It is possible that an image needs fewer pixels in a row than what's available in memory. For simplicity of explanation, though, we will assume that a bitmap always has an integer multiple of 8 pixels per row.
> Different display hardware and bus architectures will impose different restrictions on the minimum width of a display bitmap (in bytes). An 8-bit wide video memory channel will allow a bitmap only one byte wide, while a 64-bit wide channel will likely allow a bitmap no narrower than eight bytes. For this reason, for best compatibility, bitmaps intended for actual display should be an integer multiple of 8 bytes wide. (E.g., a 256 pixel wide display is 4 dwords wide, while a 640 pixel display is 10 dwords wide.) Bitmaps intended for software processing (e.g., fonts, soft-sprites, etc.) typically have more relaxed restrictions.