A.D.A. Amiga Demoscene Archive

        Welcome guest!




log in with SceneID


Demos Amiga Demoscene Archive Forum / Coding / ECS Blitter performance


Author Message
#1 - Posted: 20 Feb 2008 16:40
Reply Quote

I am trying to understand what the standard Amiga Blitter can do and how fast it is. As i am mostly an Atari coder i compare the Amiga Blitter with the Atari STE Blitter.

It seems that the Amiga Blitter is more flexible than the Atari one and can
- read from up to three source addresses
- draw and restore Bobīs (with mask)
- fill areas
- draw horizontal and diagonal lines
- copy from memory to memory

Anything i forgot?

I read on some internet pages that the Amiga Blitter can fill 1 million pixels per second. Can anyone approve this information because it sounds slow for me? And is this value for 4 planes or more? (By the way: The STE Blitter can fill 8 million pixels per second - 4 planes - 68k has to pause)

Is the Amiga-Blitter working parallel to the 68k or not?
#2 - Posted: 20 Feb 2008 18:50
Reply Quote
According to the Amiga Hardware Reference manual the Blitter can fill polygons at 16 million pixels per second (I guess 1 plane) and can draw lines at 1 million pixels per second (basically it sets 1 bit for each word of data it writes).

Yeah of course the Amiga Blitter runs in parallel to the CPU :0) The basic idea is the CPU uses the even cycles while the chipset uses the odd cycles (maybe the other way round). There is also a flag on the Blitter which if set will override the CPU if both the Blitter and CPU are requesting the same cycle.

The Amigas Blitter can also combine the data from it's 3 DMA sources in 256 different ways.
#3 - Posted: 20 Feb 2008 19:23
Reply Quote
It can also do rectangular masking on one, and data shifting on two of the three input sources in order to facilitate drawing operations at arbitrary pixel positions, and it can draw its lines between any arbitrary points (not just horizontal and diagonal, though maybe you did mean arbitrary by this) with a 16 pixel pattern.

Drawing and copying are not unique operation modes, but rather different settings and combinations of the input data. The three input sources used together with shifting, masking and any logical combination of these allow you to configure the blitter to do anything from a simple memory clear or copy, per pixel scrolling of bitmaps, to drawing of masked graphics into your bitmaps with only a single blitter call.

As for the speed, the general formula says a blitter operation takes 4, 6 or 8 clock cycles per each 16 bit word it processes depending on how many input sources you use, and 8 cycles per pixel (1 bitplane, 8 cycles per bit) in line drawing mode. On a ~7 MHz PAL Amiga 500 that should roughly equal the numbers Toffeeman gave you, not taking into account any other DMA competing for the memory cycles.

(I hope I got this right! Damn it was a long time ago...)
#4 - Posted: 20 Feb 2008 20:32
Reply Quote
I read somewhere than the speed of the blitter is 74 Mhz !? is it true ??
#5 - Posted: 21 Feb 2008 13:46
Reply Quote
Thanks Toffeeman and ZEROblue for your explanations! :-)

Amiga Hardware Reference manual: It seems that i should get my hands on this book!
#6 - Posted: 21 Feb 2008 14:16
Reply Quote
The big book of infinite knowledge:
http://www.modermodemet.se/dalton/ref/RKRM_HWRefMa n.lzx
#7 - Posted: 22 Feb 2008 11:21
Reply Quote
You can find the HW Ref Manual online here.
#8 - Posted: 22 Feb 2008 14:43 - Edited
Reply Quote
cool ... I've just lost another HW Ref bookmark of the same kind due to a laptop fatal HW crash and the subsequent data losses. THX

...see and I quickly found out why my bloody "check-for-blitter-stop" call never worked properly :D


  Please log in to comment





A.D.A. Amiga Demoscene Archive, Version 3.0