Date: Sun, 13 Jun 2004 16:39:32 -0400 (EDT) From: Nathan Raymond <[EMAIL PROTECTED]>
On Sun, 13 Jun 2004, Jeff Walther wrote:
I'm sure these methods have been worked out in detail better than I can reinvent them, and there is probably a comprehensive comparison of their relative merits discussed somewhere, but I have not been able to find such a reference. Somehow the NuBus video cards we used to buy managed this without using twice the video RAM.
They managed this because the hardware has NEVER compensated for the vertical blanking. Programs had to compensate themselves. Games had to have a VBL interrupt handler running as part of their code which would tell them when the video blanking signal hit the top of the screen so they could know when to refresh the screen buffer. If a game didn't do this, you'd get the tearing you talk about. But it was never the video card's responsibility to prevent this tearing.
Hmmm. Does that mean that the portions of the Tool Box which write to the video space also have a VBL interrupt handler so that, e.g., word processors won't cause screen tearing? That is, assuming that word processors and such only use Tool Box routines to write to the screen and never do so directly.
Another question that interests me, but is not critical, is how to implement QuickDraw accelleration.
Apple used the Intel i860 in the 8*24GC to accelerate QuickDraw by porting most of the QD ToolBox to i860 assembly to run on the card instead of the CPU. I think lowendmac.com has a few articles on the 8*24GC, which from what I understand has a lot of compatability issues, especially with games. The Quadra on-board video circuitry was not accelerated, and was almost as fast as the 8*24GC, though it was optimized local bus video circuitry that took advantage of the 68040 architecture. Nonetheless, I would think a more compatible non-QuickDraw accelerated modern NuBus or PDS video card that's highly compatible with existing software would be more useful.
The Quadra video probably gets a big boost through increased bandwidth, I suspect. NuBus was great in its day, but it was 4 bytes wide at 10 MHz with plenty of overhead per transaction. So maximum total was 40 MB/s and real performance was considerably lower. Hooking directly into the CPU's busses could double or triple that since the memory/CPU bus typically ran at from 20 to 33 or even 40 MHz. For example, the SE/30's PDS slot has a maximum theoretical bandwidth of 64 MB/s because it is 4 bytes wide and runs at 16 MHz.
Nate, thank you for the great information. Do you have any idea how the ToolBox routines were diverted to the video card? I assume that the driver for the card must be loaded for this to work and some kind of software patch is intercepting the relevant ToolBox calls, telling the CPU to ignore them, and sending them to the video card, but I have no idea how that is done. And I suspect that there would be details, such as issues where the CPU gets too far ahead in execution order if the video card is running behind. Perhaps they only accelerate ToolBox calls which can't lead to those kinds of issues.
I don't believe that QuickDraw acceleration must have compatibility issues. I think the problem is likely that Apple just stopped updating the drivers for the 8*24GC. For example, the Radius Thunder 24/GT or Thunder IV GX family works fine up through about OS 8.6 (and maybe later) with Quickdraw acceleration enabled and they work in 030 to PowerPC machines without any hitches I've heard about.
But in this case the compatibility required is fairly limited in fact. I am concentrating solely on the SE/30. It would be nice to build a NuBus video card someday, but I suspect that the limited bandwidth in NuBus would make this a pointless exercise. We're probably seeing close to the best that can be done with the last Radius releases. I don't know that for a fact, but I suspect that it is true. Especially because the Villagetronic MacPicasso 340 which was released a year or two later than the Thunder IV GX has about the same performance.
Besides, if I ever finish the SE/30 video card project, the next project will be to put an ethernet port on the thing. And if I ever do that, the next project will be to put a USB port on the thing. And if I ever do that the next project will be to put an IDE channel on the thing...
That's my fantasy. An SE/30 with grayscale display, a color display out port, ethernet, able to connect to modern USB peripherals, and sporting an internal notebook size IDE drive so that drive availablility stops being an issue and heat and power requirements are reduced.
Jeff Walther
-- Compact Macs is sponsored by <http://lowendmac.com/>.
Support Low End Mac <http://lowendmac.com/lists/support.html>
Compact Macs list info: <http://lowendmac.com/lists/compact.shtml> --> AOL users, remove "mailto:" Send list messages to: <mailto:[EMAIL PROTECTED]> To unsubscribe, email: <mailto:[EMAIL PROTECTED]> For digest mode, email: <mailto:[EMAIL PROTECTED]> Subscription questions: <mailto:[EMAIL PROTECTED]> Archive:<http://www.mail-archive.com/compact.macs%40mail.maclaunch.com/>
---------------------------------------------------------------
The Think Different Store
http://www.ThinkDifferentStore.com ---------------------------------------------------------------
