Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!bpa!cbmvax!jesup From: jesup@cbmvax.commodore.com (Randell Jesup) Newsgroups: comp.sys.amiga.tech Subject: Re: Using CPU instead of Blitter for speed Message-ID: <12412@cbmvax.commodore.com> Date: 8 Jun 90 03:24:51 GMT References: <1990Jun4.134811.12142@watdragon.waterloo.edu> <3009@crash.cts.com> <8256@crdgw1.crd.ge.com> <3035@crash.cts.com> Reply-To: jesup@cbmvax (Randell Jesup) Distribution: comp Organization: Commodore, West Chester, PA Lines: 38 In article <3035@crash.cts.com> jcs@crash.cts.com (John Schultz) writes: >In article <8256@crdgw1.crd.ge.com> barnettj@dollar.crd.ge.com (Janet A Barnett) writes: >>What about the graphics library routine QBlit(blitnode)? I set up all >>my blits ahead of time in a linked list pointed to by the blitnode >>argument to QBlit(). The blitnode contains a pointer to a routine to > > I wrote my own blitter interrupt code to clear the screen in rectanglar >chunks as opposed to a linear clear of all memory. The interrupt version >was slower. The problem with queueing up blits is that your application >my not be able to do anything else until the blits are done. In a >flight simulator, you must draw all of your polygons in the correct order. >This means that the polygons must be transformed, clipped and sorted first, >then all of the drawing must take place. Further, the processor is used >to draw points. The points can't be drawn until the blitter is finished. >I was going to put processor drawing code in the the blitter interrupt >code, but the payoff of using blitter interrupts was too little to >continue. However, with design oriented towards it you can have the extra cycles be used. Either use the blitter interrupts/QBlit and have it do the point renderings from there, and then signal the main process, or split it into rendering and calculation processes. I suspect the interrupts are faster, but the seperate process/task is easier. This allows some nice tricks to make use of all your horsepower to produce a smoother update rate. However, if you meet the special requirements for the polygons that has been mentioned before, then you are probably better using the processor (if you're after maximum speed). Or you could pass all lines larger than X to the blitter, and smaller ones to the processor, or use the blitter to block-copy backgrounds/clear mem/whatever while the processor is rendering polygons into a different buffer, etc, etc. -- Randell Jesup, Keeper of AmigaDos, Commodore Engineering. {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.cbm.commodore.com BIX: rjesup Common phrase heard at Amiga Devcon '89: "It's in there!"