Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!sunybcs!rutgers!cbmvax!jesup From: jesup@cbmvax.commodore.com (Randell Jesup) Newsgroups: comp.arch Subject: Re: hmmm Message-ID: <9809@cbmvax.commodore.com> Date: 24 Feb 90 00:32:09 GMT References: <7398@pdn.paradyne.com< <9734@cbmvax.commodore.com> <7453@pdn.paradyne.com> Reply-To: jesup@cbmvax.cbm.commodore.com (Randell Jesup) Organization: Commodore, West Chester, PA Lines: 72 In article <7453@pdn.paradyne.com> alan@oz.paradyne.com (Alan Lovejoy) writes: >In article <9734@cbmvax.commodore.com< jesup@cbmvax.cbm.commodore.com (Randell Jesup) writes: >< Be careful of one's assumptions. On some systems, the relative > >Animation invovles repeatedly blitting the same SOURCE bitmap to the screen. >This increases the likelihood that the source pixels will be in the cache, >one would think. And the longer each pixel-line is, the more the speed of >the innermost loop dominates overall blit speed. Highly unlikely. Often the bitmaps are different, and the bitmaps are often far larger than reasonable caches (even if nothing but blitting is going on, which is not normally the case). We agree that it increases the importance of the inner loop (a lot). Scrolling and moving rectangles are also important (depending on use, of course). >< Also watch out for assumptions about screen depth. Even character > >Not necessarily. Just because the destination bitmap is N bits per pixel >does NOT mean the source bitmap is N bits per pixel, ESPECIALLY in the >case of character glyphs. True. Not all screens are "chunky", either - some are bitplanes. However, you still need to modify all the bits of the pixels you're dealing with, whether you write 1's or 0's. >< Where special hardware is useful is for non-special cases, like > >But what is the relative frequency with which diagonal lines are drawn as >compared to non-diagonals? RISC teaches that one should optimize for the more >frequent cases. It depends on usage. And usage often depends on what's fast already. And, as I said, unlike program execution, human perception of time is non- linear, and also has other affects due to being able to see partially completed renderings (often). The optimal bitblit for a character-only display is different than that for one that has window borders but no patterns, which is different from one with patterns, which is different from one that displays icons, which is diff- erent from one that is used to display CAD images, etc, etc, etc. Because of this, it's important to consider all applications of your hardware. The affect is more pronounced than in most general instruction set design issues, but it's there, too. If you were here, remember the discussions between myself and John Mashey about R2000 vs RPM-40, and the fact that we had to first define the environment (i.e. type of programs) before doing comparisons. R2000 is a better match for Unix than the RPM-40 (given the same tech), RPM-40 is better for embedded and small systems (which were a major factor in it's design). Designing to handle the general cases well can bring great flexibility to the use of your hardware, even if you give up a little in some special cases (and you may not have to). -- 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!"