From: ecarroll@maths.tcd.ie (Eddy Carroll)
Subject: Re: Atari BLiTTER
Organization: Dept. of Maths, Trinity College, Dublin, Ireland.
Date: Wed, 30 Sep 1992 18:03:38 GMT

u894776@bruny.cc.utas.edu.au (James McCoull) writes:
>	Now I've got that out of my system are it might be a good time for
>discussion on possible features that could be added to the amigas blitter.
>
>o. Interleaved bitplane support: [ caching a whole row of mask data on chip ]

I don't think the cost would be worth it. You'd want at least 2048 bits
of storage for the mask, and that translates to a LOT of chip space that
could probably be utilised much better for other cool new features.

>o. Rectangle [window support]:
>
>	Consider blitting a window from position A to B.  Only the extreme
>columns need to be mixed with the destinations.  Software solution -
>break the blit into three parts [to save cycles], do the two outermost
>column blits using a "destination" source, do the internal segment as a 
>direct copy [no "destination" source].  Hardware solution - offer a mode
>where a source may only actually be fetched for the first and the last word
>of a horizontal line.  Ok Ok this doesnt save you many cycles - but when
>you are a performance freak you cant help it.

Yes, this would be nice. What we really want is a full bit blitter that can
handle all this automatically, instead of a word blitter like we have at
the moment.

>o. Blitter Copper/Feeder [anyone who has tried to write high-performance
>3d graphics routines on the amiga [fastram friendly], knows what this is
>for :) ]

Yes, this would be very nice indeed. A chip I'm programming at the moment
has a display list facility where you can point it to a whole list of
operations (line draws, area fills, etc) in memory and then leave it to
draw them all in sequence while the main CPU gets on with something else.
Along the lines of a copper list, only not tied to the video refresh.

>o. Polygon support [at least filling between two horizontal lines -
>without preprocessing [or without need for "destination" source fetch when the
>words being written are not at the edges]].

Definitely a must. Actually, this is free with a bit blitter.

>I guess of course all this is a load of bollocks [been a long day], and
>the best idea would be to retain all the current blitter features, speed up
>the blitter say 4-8x [over ECS] - but add more support for handling small
>blits without a great deal of overhead [it would be nice if the only time
>waitblit was called was when we really needed to know the blitter had modified
>its memory, and not when we wanted to know it was free - a queue can handle
>that].

Things that I would like to see:

    o	Line drawing facilities where there's no need to carry out all the
	initialisation in software: just give it an X/Y pair and off it goes.

    o   Trapezoid fill: supply Y0, Y1, X0.fixed, X1.fixed, X0inc.fixed and
	X1inc.fixed, and the blitter will interpolate the edges accordingly.

    o   Support for X/Y co-ordinates for blitting, to avoid having to
	calculate screen offsets in software the whole time.

    o   Block write instruction for the COPPER to load multiple registers
	as quickly as possible).

    o   Support for interleaved bitmaps, along the lines of 8 source and
	destination registers (all sharing common alignment restrictions
	etc.) so that up to 8 bitplanes can be moved in a single operation.
	Or even better, up to 32 bitplanes :-) This would get rid of the
	flicker you get when scrolling multiple bitplanes for once and
	for all, and would also greatly reduce setup time.

    o   Enhance the line and fill operators to allow output to multiple
	bitplanes simultaneously, as described above. Add a pixel command
	for good measure to output a single pixel to all bitplanes.

    o	Add hardware clipping for pixel, line and trapezoid output

Of course, adding X/Y address has the disadvantage that you have to keep
reloading pitch and offset registers every time you render to a different
bitmap, but I think it would be a win overall.

Eddy
-- 
Eddy Carroll      ----* Genuine MUD Wizard  | "You haven't lived until you've
Internet: ecarroll@maths.tcd.ie             |  died in MUD!" -- Richard Bartle
Newsgroups: comp.sys.amiga.advocacy