Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!uupsi!sunic!cs.umu.se!dvljrt From: dvljrt@cs.umu.se (Joakim Rosqvist) Newsgroups: comp.sys.amiga.programmer Subject: Re: 3D stuff & quick line drawing Message-ID: <1991Apr27.175429.21010@cs.umu.se> Date: 27 Apr 91 17:54:29 GMT References: <20884@cbmvax.commodore.com> <1991Apr24.203219.22776@cs.umu.se> <20967@cbmvax.commodore.com> Sender: news@cs.umu.se (News Administrator) Organization: Dep. of Info.Proc, Umea Univ., Sweden Lines: 37 >>BTW, i read in another article that using the blitter on short lines >>should be a disadvantage because of the long setup-time. The breakoff >>was given to about 150 pixels. I don't know what processor was intended >>but I made a little test in the following environment: >> >>Program ran from fastmem, 68000 used, 1 bitplane 640x256 shown and >>no interrupts enabled. >>With the blitter i got 738000 pixels/second and 23 microsecond startup-time >>which equals 17 extra pixels on every line. Lines between 1..25 pixels >>all take the same time. The is beacuse the setup-time was really 58 micros >>but for longer lines some of this could be done while the blitter was >>drawing the previous line. >>With the 68000 i could get about 150000 pixels/sec and 24 micros 'setup' >>(I clocked a MAC SE/30 using quickdraw to 110000 pix/sec giggle..) >>This means that the breakoff(=the number of pixels where using the blitter >>or the 68000 would take the same time) would be at 5 pixels. >> > >You don't say if the lines are arbitrary direction. Sure, for short horizontal >lines, you would be better off using the CPU, but I doubt that's the case for >lines of any angle of more than a few pixels. > Of course, I gave you the figures to show that there really is no point in using the 68000. The value 150000 corresponds to an 22-degree line Lines that are 0 or 90 degress will be the fastest and 45 deg the slowest so i used 22 as an in-between. And.. the 68000 will always win over the blitter for horisontal lines. This is because it can do a: label: move.l d7,(a0)+ dbra d0,label Where a0 is a pointer in the bitplane and d7 is $FFFFFFFF. The poor blitter would read a word, set a bit, write it back then read it again.. 16 times without knowing it's the same word :-( /$DR.HEX$