Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!husc6!brauer!fry From: fry@brauer.harvard.edu (DSF2) Newsgroups: comp.sys.mac.programmer Subject: Programming and the 8/24 GC card Message-ID: <2344@husc6.harvard.edu> Date: 26 Mar 90 08:17:51 GMT Sender: news@husc6.harvard.edu Organization: Harvard Math Department Lines: 40 Reading through Apple Direct, I was thrilled to see that some level of multiprocessing is afforded by the new 8/24 GC accelerated graphics card. If a program calls a QuickDraw routine, the GC's AMD 29000 is given responsibility for executing it. The 29000 tells the CPU that the routine has already finished (which is a lie) and the CPU goes on to the next instructions while the 29000 performs the QD routine. Should the CPU encounter another QD instruction before the 29000 finishes, it will wait for the 29000. My worry is what level of compatibility is required from a program to make this work. Certainly Apple has always warned us that we should user their routines to do QuickDraw, but for some applications this is just too slow. What happens if you try to do this with the GC installed? For instance, suppose a program calls EraseRect (substitute your favorite QD trap here) in an offscreen PixMap and then tries to access a pixel directly as an offset from the baseAddr immediately afterwards. We assume the 29000 hasn't yet finished, so the PixMap won't be in the state the program expects it to be. Or, more likely, a program will try to set the value of a pixel. Is there some handshaking going on that will prevent a program from doing this? I imagine that would be very simple if the PixMap were on the GC's onboard DRAM, but what if the PixMap is in the main memory? If this really is a problem, is there a way for a program to know a GC is installed? At least then it could assume the board is fast enough that it's not necessary to go behind QuickDraw's back. David Fry fry@huma1.harvard.EDU Department of Mathematics fry@huma1.bitnet Harvard University ...!harvard!huma1!fry Cambridge, MA 02138