Dimitri wrote:
Is that not "overkill" for your bus?
Are you confusing dot-clock (the clock used on the video device's bus) with the communications clocking? I quoted 25.2MHz for the dot-clock shift register, but only 12.6MBps data rate
worst-case, and 6.3MBps best-case (requires double-buffering).
Numerous arcade games work by redrawing the entire screen 30 times a second. And, of course, video players work by doing the same (assuming they're in full-screen mode).
But, let's suppose you do optimize the display of animated objects. You also have to read the state of the framebuffer to do this. This means, under even the most ideal conditions, you can only read and modify no more than half of the screen's pixels per frame.
Quote:
Your CPU in the computer your posting this from doesn't transfer all the data from it, to the Northbridge then to the Graphics card. It simply transfers the required "new" information, and allows the Graphics Processing Unit to keep refreshing the screen continuously.
I'm well aware of this, and if you read my description, this is precisely what I proposed doing. The Remote Frame Buffer protocol works by sending video deltas as needed, not continuous raw frames. But, when animating, "when needed" means at least 30 times per second.
A 16-color 640x480 display consumes about 150KB of memory space. At 30 frames per second, you'll need at least 4.5MBps bus transfer rate. Additionally, if you are single-buffering, you'll want to be synchronized with the electron beam in a CRT (otherwise, you'll run into tearing problems), which is why I advocated higher bandwidths.
This is a clear-cut case where you may not often need the bandwidth, but when you do, you
really need it.
Quote:
you can send the multiple images, and have your GPU commanded to change the images at "X" rates.
Change the image to
what though? At 150KB per screen, you can only pack so many frame buffers into the video card's memory. Eventually, the CPU will need to load frames into the card, and it must do so at least at frame rate.
Remember back in the mid-80s and early-90s when the MPC standard came out? The reason why you had 160x120 animations on screen sizes of 800x600 or more is precisely because the PC couldn't push pixels fast enough into the video card. Even
if you relied on the video card to page-flip, you couldn't pull off full-screen, smooth animation. The buses at the time just couldn't deal with the load.
Today, CPU buses are so much faster than video refresh rates that it's actually easier to just redraw the screen in its entirety, from a blank frame buffer, 30 to 60 frames per second, than it is to optimize your animation.
Now, for me, I have no false pretenses that I'll pull off 60fps animation with a 65816. It's doable (the Amiga did it with a 7MHz 68000) with some support hardware, but not worth my time. But, if I ever do build my Kestrel-2, I would like a pleasant GUI, and watching windows flip onto the screen like sheets of toilet paper falling from a roll just annoys the ever-loving crap out of me. It really does -- it drives me so batty that I have to leave the workstation. I expect that sort of behavior from GEOS on a Commodore 64, but not on something 12MHz or faster.
So, to conclude, I really do desire having a bus with enough bandwidth to support full-screen animation. From the point of view of usability, it really does make a difference.