Overview Features Coding ApolloOS Performance Forum Downloads Products Order Contact

Welcome to the Apollo Forum

This forum is for people interested in the APOLLO CPU.
Please read the forum usage manual.
Please visit our Apollo-Discord Server for support.



All TopicsNewsPerformanceGamesDemosApolloVampireAROSWorkbenchATARIReleases
Performance and Benchmark Results!

Vampire FPU Tests?

Mateusz S.

Posts 53
21 Oct 2020 21:52


Hi,
I really would like to see some comparision tests,
maybe someone would like to do them and share the results?
Or maybe someone already did? :)

These are topics that I am interested in:
1. floating point operations:
compare results when: not using FPU, with FPU, when floating points replaced with fixed point.

2. sin, cos
Standard functions from math library, comparing with using FPU
and maybe some additional alternative fast sine and cosine algorithms


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
22 Oct 2020 08:11


Mateusz S. wrote:

These are topics that I am interested in:
1. floating point operations:
compare results when: not using FPU, with FPU, when floating points replaced with fixed point.

Is your question about performance?
E.g. How much faster using FPU instructions are compared to emulation FLOAT with softfloat?

Is your question related to something you want to program?
E.g. A 3D game?


Mateusz S.

Posts 53
22 Oct 2020 09:36


Yes, I was talking about performance.

Ex. Lets take a 10000 loop with some floating point equations and measure the time of execution. In one case with no FPU, in another with FPU, and as additional we could use fixed point instead of floating points (long where first 16b are for integer part and another 16b are for fractional part) I heard that
This kind of representation of fractional numbers can boost performance. And is often used in some kind of demos.

I am just playing around with raycaster, testing some fast algorithms of collisions etc. on windows by now, coded in C in plain winapi, but I would like to port it later to Amiga, to see the performance on V1200, so every optimalisation and boosting the computations will be important then.


Thellier Alain

Posts 141
22 Oct 2020 10:12


Cos and Sine speed is not so important for a 3D scene.
I mean you create your rotation matrix once with the needed cos & sin values then you will multiply this matrice with each vector
So only some fcos fsin per scene but hundreds or thousands of fmul


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
22 Oct 2020 10:31


thellier alain wrote:

So only some fcos fsin per scene but hundreds or thousands of fmul

Yes Alain explained it 100% correct.
 
The Apollo 68080 FPU, can peak execute 1 FMOVE and 1 FMUL per cycle with good code.
But you need a good FPU workloop - ideally handwritten in ASM.
 
For comparison the 68881/2 FPU would need about 80 cycle to do the FMOVE/FMUL.
This means the Vampire 68080 FPU can reach FPU speed of an 68881 clocked at 6800 MHz. (6 GHz chips will be hard to get :-)

But with normal C code you will not get much done.


Mateusz S.

Posts 53
22 Oct 2020 12:49


I recently involved in raycasting - I like this old/retro rendering method, it is very fast, and can be done even on slow machines. Its basically 2.5D not full 3D.

And of course this method has its own limitations, but I have some ideas that I would like to try. (like texture baking with shadows or implementing additional rasterizer to make simple 3d objects like in Blood).. and lots of thins like texturing, shading, "looking up/down" can also be done in simple way.

For 320px screen width, I have now 320 sin() and 320 cos() operations per frame (but maybe this can be optimised with LUT). So far there is not much multiplying because I am using optimized fast grid traversal algorithm..

Unfortunately I don't know assembler, but my intention is,
to port the code to Amiga in C, part by part and maybe with some
help I will do some asm optimalization and learn a bit..




Gunnar von Boehn
(Apollo Team Member)
Posts 6207
22 Oct 2020 12:51


Sounds interesting.
Can you share us some pix so that we can better imagine it?


Mateusz S.

Posts 53
22 Oct 2020 13:02


Gunnar von Boehn wrote:

  Sounds interesting.
  Can you share us some pix so that we can better imagine it?
 

 
  Of course. Its basically the method that Wolfenstein 3D was created.
 
  Check first two minutes of that YT clip. It explains
  how Raycasting basically works:
  EXTERNAL LINK 

  This is beautifully created Raycaster, the final result depends of course on many things, like good textures, sprites etc:
  EXTERNAL LINK 

  This my very early Raycaster:
  EXTERNAL LINK 

  I am focusing on using fast and optimized algorithms, like “A Fast Voxel Traversal Algorithm for Ray Tracing”. You can also find lots of different tutorials and approaches on the net.


Gunnar von Boehn
(Apollo Team Member)
Posts 6207
22 Oct 2020 13:35


OK nice.

Now I understand your goal.
A game engine like Castle Wolfenstein can run very fast on Vampire.
Over 100 FPS can be possible in 320 resolution.

Here a video of old Wolfenstein on Vamp
EXTERNAL LINK


Mateusz S.

Posts 53
22 Oct 2020 15:07


Good to hear it ;)

posts 10