AminetAminet
Search:
84181 packages online
About
Recent
Browse
Search
Upload
Setup
Services

gfx/fract/mandel_dsp.lha

Mirror:Random
Showing:m68k-amigaosppc-amigaosppc-morphosi386-arosi386-amithlonppc-warpupppc-powerupgeneric
No screenshot available
Short:Mandelbrot generator for DSP3210 chips
Author:wrangler491_at_gmail_dot_com
Uploader:Wrangler491 gmail com
Type:gfx/fract
Version:3.12
Replaces:gfx/fract/mandel_dsp.lha
Architecture:m68k-amigaos >= 3.0
Distribution:Aminet
Kurz:Mandelbrot-Generator fuer DSP3210-Chips
Date:2021-10-30
Download:http://aminet.net/gfx/fract/mandel_dsp.lha - View contents
Readme:http://aminet.net/gfx/fract/mandel_dsp.readme
Downloads:550

Mandel_DSP for Amigas with DSP3210 chips
----------------------------------------
This is a Mandelbrot generator for Amigas equipped with a DSP3210 chip.  It
is based on "Mandel" by Erik Trulsson using code from ARTABROT for the Mac
by George T Warner. If you use the source code, you need to credit me and the
other two authors in your code. 

Implementation on the Amiga with DSP by Wrangler, February 2021

Requirements
------------

AA3000+ with DSP3210 and correct logic chips*
AA3000 original (!)
FPU

* At least two things are required to have a working DSP on the AA3000+:

1. The R_W and RW signals need connecting together, either on the motherboard
or with a patch cables
2. Some tuning of the logic chips is required to get the right speeds of the 
logic chips.  At the time of writing, there does not appear to be a 
combination that works for everyone with every accelerator.  If you want a 
long read on the subject, take a look at the thread "Die DSP 3210 Software!"
on A1k.org.

With the right tuning, full function of the DSP has been achieved with the
following CPU cards:
- on board 68030
- CSMk2
- CSMk3
- CSPPC
- Warp Engine
- A3640
- A3660

Usage
-----

Use mandel_dsp from the Shell - no other software required
The initial render will be using the FPU
Double click or z to zoom in
Double right click or Z to zoom out
Esc or q to quit
d renders the frame using the DSP
f renders the frame using the FPU

Speed/versions
--------------

V1.61 - proof of concept but slow.  
Each pixel's coordinates are passed to the DSP to work on and the CPU waits 
until the DSP returns with the result.  It works but slow (eg 33 seconds on 
DSP for the initial render)

V2.10 - column processing
The CPU provides the coordinates of the first pixel in a column and the CPU 
waits for the DSP to return the results for the entire column.  Much less 
overhead from exchanging data between the two.  Initial render now about 14 
seconds

V3.00 "nitro" - parallel processing
The DSP code is operating out of its own onboard RAM and the DSP is 
processing one column of pixels while the CPU is simultaneously colouring the
 previous column on screen.  Massive speed up - initial render now 2 seconds.

All timings using a 50MHz 060 accelerator which itself renders in about 9 
seconds

V3.12 - split source code
The source code has been split between M68k and DSP3210 code, and between
system files and program code.  This is all possible to my new ASM3210 and
elf2exem68k programs - see Aminet for those.  It's now MUCH easier to see what
is going on and make changes to the DSP code.

I also took the opportunity to tidy up the code, and unleash the FPU using
native FPU instructions.  The 060 FPU and the DSP are now approximately the
same speed at the same clock rate.

Source
------

Held on my github: 
https://github.com/Wrangler491/AA3000-DSP/tree/main/Mandel_dsp


Contents of gfx/fract/mandel_dsp.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[generic]                22268   51264  43.4% -lh5- 660f Oct 30  1980 mandel_dsp.exe
[generic]                 1567    3201  49.0% -lh5- 9af1 Oct 30  1980 mandel_dsp.readme
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total         2 files   23835   54465  43.8%            Oct 30 23:15

Aminet © 1992-2023 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>