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
Information about the Apollo CPU and FPU.

Polygon Pushing Performance of the 080page  1 2 3 4 5 6 7 8 9 

Daniel Sevo

Posts 299
17 Sep 2018 21:58


I was thinking about all those polygon based sims we had on the regular 7MHz Amiga back in the day and then I was thinking how much more could be pushed around with the 080 Apollo core with its AMMX and fast FPU.
 
  Has Flype or some other ace coder done any demos to check performance, i.e. actual numbers.
  I guess we would first need to have a properly optimized environment such as Wazp3d but even theoretically speaking, what should be possible on the Apollo Core? Could we do beyond SEGA Saturn level 3d games? (The Saturn famously lacked "proper GPU" and relied heavily on properly utilizing the dual CPUs (total ~112 MIPS) and VDP1 chip.  Still Quake was customized for it (not by id) and it ran fine.)

 
  And if you go beyond Saturn youre obviously in PS1 / N64 teritory and while lacking a dedicated GPU we have faster and lots more memory and the advantage of skilled 68k assembly coders. ;-)
 
  Opinion?
  Where is 080 at compared to the early 3d consoles in raw power?
And how much does textured polygons kill performance vs say gouraurd shaded ones on 080.?
 
 


Vojin Vidanovic
(Needs Verification)
Posts 1916/ 1
17 Sep 2018 22:33


Daniel Sevo wrote:

    Opinion?
    Where is 080 at compared to the early 3d consoles in raw power?
    And how much does textured polygons kill performance vs say gouraurd shaded ones on 080.? 
 

  As you say, v2 Vamp has
  + Has way powerful CPU than ANY 16-bit console
  + Has a CPU performance of 32/64-bit consoles
  + Has plenty of fast RAM
  + Has dedicated 2D chip
  - Has no 3D at all, unlike many of 32/64-bit cinsoles
  - Has not even a shader hardware support
 
  Overall: performance is of P1-75 Quake 1 with no 3D gfx card which is great for CPU, poor for 3D. Even with AMMX I doubt we can reach higher levels of complex 3D engines with no dedicate 3D hardware expansion or introduction to FPGA.
 
  Good news is that CPU and AMMX might be more then enough for 3D effects in 2D games, and this is where I see a Vamp. Or classic CPU driven non-realtime render.
 


Saladriel Amrael

Posts 166
18 Sep 2018 14:10


Vojin Vidanovic wrote:

[...]
   
    Good news is that CPU and AMMX might be more then enough for 3D effects in 2D games, and this is where I see a Vamp. Or classic CPU driven non-realtime render.
   

Exacly my tought: enhanced 2D games with some fancy CPU-Heavy effects is what I'm most excited to see on Vamp

Speaking of 3D games I think the most we can expect is soft rendered Quake2 Engine or something in that order of magnitude, nothing more (Forget about Unreal 1 fancyness), but that's not a problem to me.




Vojin Vidanovic
(Needs Verification)
Posts 1916/ 1
18 Sep 2018 14:28


Saladriel Amrael wrote:

  Exacly my tought: enhanced 2D games with some fancy CPU-Heavy effects is what I'm most excited to see on Vamp

Nice expample is that DOS Shooter "Ganja Farmer", Classic 2D.
I bet we can ehance it way beyond.

What I believe Vamp can reach is how Wonderboy Dragons Trap remake looks to old Sega Master Sys one.
EXTERNAL LINK 
Here we could do "PS4 quality"



Saladriel Amrael

Posts 166
18 Sep 2018 14:55


Daniel Sevo wrote:

    I was thinking about all those polygon based sims we had on the regular 7MHz Amiga back in the day and then I was thinking how much more could be pushed around with the 080 Apollo core with its AMMX and fast FPU.
     
      Has Flype or some other ace coder done any demos to check performance, i.e. actual numbers.
      I guess we would first need to have a properly optimized environment such as Wazp3d but even theoretically speaking, what should be possible on the Apollo Core? Could we do beyond SEGA Saturn level 3d games? (The Saturn famously lacked "proper GPU" and relied heavily on properly utilizing the dual CPUs (total ~112 MIPS) and VDP1 chip.  Still Quake was customized for it (not by id) and it ran fine.)
   
     
      And if you go beyond Saturn youre obviously in PS1 / N64 teritory and while lacking a dedicated GPU we have faster and lots more memory and the advantage of skilled 68k assembly coders. ;-)
     
      Opinion?
      Where is 080 at compared to the early 3d consoles in raw power?
    And how much does textured polygons kill performance vs say gouraurd shaded ones on 080.?
   
   
   

   
    For what I read, give or take, Vamp can achieve P1/PSX/3D0 performance level, so mid Nineties 3D gaming without strong 3D acceleration could be expected imho (Gunnar can correct me if I'm wrong), this means that Wing Commander III, Quake II, Alone in the Dark II or games with similar GFX can be expected to be feasable on a Vamp if properly programmed.
   
   
   
   
   
   
   
   
   
   


Samuel Devulder

Posts 248
18 Sep 2018 17:48


You can try the monkey demo from coffin-os. It reports the fps as well as the number of vertex/faces.
EXTERNAL LINK 
Otherwise you can also try quake with "r_drawflat 1". It'll display untextured polygons.


Daniel Sevo

Posts 299
18 Sep 2018 22:59


Samuel Devulder wrote:

You can try the monkey demo from coffin-os. It reports the fps as well as the number of vertex/faces.
  EXTERNAL LINK 
  Otherwise you can also try quake with "r_drawflat 1". It'll display untextured polygons.

Thanx, that is useful. However I don't have the Coffin OS atm. Does it say who created the Monkey Demo. I'd gladly prepare a bunch of 3d model test cases for whover made the demo.
It would be useful to see examples with:
*Single object HighPoly, Low-res / high res /no texture toggle on off, smooth/flat shading
*Several instanced objects like the one above
*Several unique objects, low poly, high poly vrsions, texture toggles like above
*crapload of small unique objects, numbers could be dynamic (spawn ew objects) show total polycount. Textures toggle/on off, etc
I'd need to know what format the 3d object should be in and also the textures (sizes, power of 2, fille format..)



Gunnar von Boehn
(Apollo Team Member)
Posts 6197
19 Sep 2018 05:16


Daniel Sevo wrote:

  I was thinking about all those polygon based sims we had on the regular 7MHz Amiga back in the day and then I was thinking how much more could be pushed around with the 080 Apollo core with its AMMX and fast FPU.
 

   
 
APOLLO 68080 has the most powerful FPU of all 68K family members.
   
3D point/coordinates calculation and projection can be calculated on the APOLLO 68080 about 8 times faster than on 68060@50Mhz.
   
In addition to this APOLLO 68080 comes with 3D acceleration features, for Pixeltexturing, Alpha-blending etc. These feature allow fast 3D texture-mapping in truecolor.
   
APOLLO 68080 3D acceleration is comparable to ATI 3D PC GFX cards of the 90th. 

You might have seen some videos of Texture map Demo we did on Vamp running in 640 and truecolor.
We are preparing more demo / Game routines for demonstration and as examples.


Andy Hearn

Posts 374
19 Sep 2018 09:36


looking forward to it :)



Saladriel Amrael

Posts 166
19 Sep 2018 10:38


Cool, can't wait to see Vamp muscles flexing in action ;)


Vojin Vidanovic
(Needs Verification)
Posts 1916/ 1
19 Sep 2018 12:43


Daniel Sevo wrote:

      I was thinking about all those polygon based sims we had on the regular 7MHz Amiga back in the day and then I was thinking how much more could be pushed around with the 080 Apollo core with its AMMX and fast FPU.
     

 
  @Gunnar von Boehn
 
  Polygon 3D with some textures and effects might be our style.
     
    Could we do something like way enhanced HUNTER 1991 + TREX WARRIOR elements? Add a bit of Robocop 3 and F1GP vehicle drive, Guardian CD32 spaceships and Stunt cAr race mode any whoop :-) Even a bit of tank, choper and sub simulation and people will love it!
   
    Maybe some Gunship!/Gunship 2000 Islands and Ice conversion with Comanche style Voxel 3D (Barbados race was able to bring it to AGA/RTG?)

Could be just a demo, but would love to see such 3D sim as "Vampire V4 launch title" (either that or Ganja Farmer enhanced)


Thellier Alain

Posts 141
19 Sep 2018 13:29


>APOLLO 68080 3D acceleration is comparable to ATI 3D PC GFX cards of the 90th.

?? Would have more sense to compare it to an Amiga 3d card model

Do you mean a CV64/3D (with more RAM) speed is a reachable goal ?
 
Does someone have benchmark result for classic Amigas + 3D card ? just to know what is the goal to reach ...
(gears,cow3d,etc..)




Gunnar von Boehn
(Apollo Team Member)
Posts 6197
19 Sep 2018 17:03


thellier alain wrote:

>APOLLO 68080 3D acceleration is comparable to ATI 3D PC GFX cards of the 90th.
   
?? Would have more sense to compare it to an Amiga 3d card model
Do you mean a CV64/3D (with more RAM) speed is a reachable goal ?

Yes maybe
   
The Cybervision CV 64 uses an S3 Virge 3D GPU Chip.
I'm not an expert of the Virge.
But Maybe you can help me with the features of it?
   
1st texture compression
AFAIK the Virge does has NO HW support for texture compression, while APOLLO has.
S3 IMHO added texture compression support first time in the SAVAGE 3D which came out 3 years after the Virge.
In regard texture compresion APOLLO is clearly one generation more advanced than the Virge.
   
2nd Truecolor
APOLLO supports truecolor texture mapping.
Does Virge support it to?
With performance numbers for the CV64 3D maybe you can help me?
How many truecolor texels can the CV64 3D texture map per second?
 

Main problem of the CV64 3D is that only has 4 MB ram.
A 640x480 truecolor screen needs 1.2 MB
With double buffering you need 2.5 MB for the screen alone.
This leaves meager 1.5 MB for textures.
 
This means for many games you need to continuously re-copy textures to the card. This will make it very slow for many games.
For many games the Virge chip has not enough video memory.
 
I think the Virge is OK for simple games in 320 resolution,
but in 640 resolution and little bit more textures will run in limits on the Virge chip.
APOLLO is clearly superior here and will allow games in 640.


Thellier Alain

Posts 141
19 Sep 2018 17:45


>How many truecolor texels can the CV64 texture map per second?
I dont have the answers: a long time ago I had an Amiga4040+CV64/3D but I sold it so I cant benchmark myself anymore

I absolutely agree with you that this card was in fact unusable for 3D gaming as this card RAM was too small
(even if it was using mainly 15/16 bits textures/screeen)
Anyway it has hardware rendering that looks fast (at this time...)




Gunnar von Boehn
(Apollo Team Member)
Posts 6197
19 Sep 2018 18:21


thellier alain wrote:

  >How many truecolor texels can the CV64 texture map per second?
  I dont have the answers: a long time ago I had an Amiga4040+CV64/3D but I sold it so I cant benchmark myself anymore
 

 
I think the Virge could run at 80MHz and needed several cycles per texel.
AFAIK best case for the Virge was 40 Megatexel, and lower for truecolor.
 
 
  For APOLLO we consider to put the texture capabilities in subunit which would run in parallel to the CPU.
  I hope that we could tweak it to 1 texel per cycle peak.
  Which would give twice the performance of the S3 Virge chip.
 
 
Realistically the VAMP is not designed to beat Playstation-4 3D game performance. But for PS1 style games it should be more than adequate.
 
If one aims for "realistic" goals like something between PS1-PS2 games then an interesting discussion topic could be
what the most important key features for HW accelration pf the 3Dcore will be.
What do you think?


Andy Hearn

Posts 374
19 Sep 2018 22:36


"back in the day" had an A4kT PPC with CVPPC and CV64/3D. and my over-riding memory is:- software conflicts. Cooling. Powersupply issues.

so. OS3.5/3.9 with whatever boing bags
Latest, or maybe not quite latest version of cybergraphics - NO P96!
Warp3D 4.2 … or maybe 4.0

The 68k Warp 3D demos were a bit slideshow-y, but I just told myself "realtime rendering"... Warp3D "engine" demo held hints of never actually achieved coolness. real time lighting and colour filtering - perspective correct bilinear filtered texture mapping

The PPC Demos... a bit better, not brilliant. but then, what version of WarpOS? do you install the PowerUp compatible version? or go pure PPC binarys? oh no! that version of warpOS with the compatilibilty layer for Power-UP now doesn't play ball with the OpenPCI firmware capable cybergraphics drivers!

and then. after evenings spent figuring out what version runs with what, you finally run WipEout2097, with full bilinear filtering... i think I actually managed mario64 on an N64 emulator at 3fps? and the power supply mainboard connector melts because its a crappy AT type connector.

and I've not even got as far as the fans and heatsinks in the damn thing. absolute exercise in frustration.

aaaaanyway. 68k quake openGL on the virge is very pretty with bilinear filtering. but a slideshow at anything more than 320x240... and even then … meh....
iirc, even on Zorro3 the CV64/3D still wouldn't allow more than 3.5meg "multimedia mem" to be enabled in cybergraphics for potential texture/video ram buffers - zorro2 was even worse.
on the CVPPC, life was better, but still limited to 8meg for both the framebuffer and texture ram.

I have a CV64/3D in my A3k if anyone wants some bench … "numbers". or more likely; "number".
I think someone did to a VirgeDX upgrade on their card, potentially twice as fast, but it failed in that some of the colours were byte swapped when reading the framebuffer for output.



Andrew Copland

Posts 113
20 Sep 2018 13:53


What compressed texture formats does Apollo support and how does it "support" them? Is there hardware decompression of S3TC derived format?


Thellier Alain

Posts 141
20 Sep 2018 14:11


Andy Hearn wrote:

  I have a CV64/3D in my A3k if anyone wants some bench

Yes Thanks : you can try aminet/cow3D
Let the cow turns until you obtain some fps values (obtaining 3 time the same number is good)
Then press "b" it will bufferize the whole animation (if possible, enough ram....) then will only draw the cow without using the fpu for turning.
Obtain some fps values in this mode too

Gunnar von Boehn wrote:

  what the most important key features for HW accelration pf the 3Dcore will be.
  What do you think?

I think uv texturing must be the fastest possible as it will also be used for 2D+ games like MACE (I mean 2D with "sprites" rotation/resizing/blending)
So as I already suggest all that will remove instructions in the uv texturing loop is good (NEVER TOO FAST)
For example I already suggested to have both u & v in the same 64 bit register as fixed size pseudo float (16.16)
then have a new padd32 that can add both du & dv in the same 64 bit register. (do an ADD.L on high 32 bits and an ADD.L on low 32 bits)
[ Of course then will need a way to get the texel from this "uv" 64 bits register I mean something like your LEA3D but for 64bits uv ]
So
  u=u+du;
  v=v+dv;
will become
  uv=uv+dudv;
to got to next texel

It looks nothing but in 3D rendering there are several "channels" that need to be "added" this way for each fragment (pixel) : z w u v r g b a
  u=u+du; // uv texturing
  v=v+dv;
  w=w+dw; // correction for perspective
  z=z+dz; // for z test/write zbuffer
  r=r+dr; // for gouraud
  g=g+dg;
  b=b+db;
  a=a+da;
if 8 ADDs becomes 4 PADD32 then nice :-)

That will works for simple texturing but for perspective texturing I have no idea now as it will need to implement
  u=u+du;
  v=v+dv;
  w=w+wu;
and the u v values to be "corrected" to u/w and  v/w for getting the correct texel: texel=texture[u/w,v/w]
so having them as an uv 64 bits may be a disadvantage if the div is done for each texel
(or will need a PDIV32 too...)
An other way will be to "correct" u v du dv only after (say) 16 pixels and interpolate linearly betweenn

An other thing:
Perhaps having something like "texture-units" will help too to obtain the texel
I mean the same way the blitter "handle" several parameters for a blit that are stored in custom registers : we can imagine to have
some new custom registers to store the texture parameters once for all: pixelsadresse,width,height,pixelformat,...
and so obtain directly (new AMMX code I mean..)  an RGBA texel from only an uv value as the other parameters are already set/known in "texture-unit0"
Same for writing: "texture-unit1" is set to screen: so only need to give an RGBA value and xy for writing
PADD32 dudv,uv
PADD32 dxdy,xy
TEX0READ  uv,texel
TEX1WRITE xy,texel



Gunnar von Boehn
(Apollo Team Member)
Posts 6197
20 Sep 2018 15:48


Andrew Copland wrote:

What compressed texture formats does Apollo support and how does it "support" them? Is there hardware decompression of S3TC derived format?

Yes S3TC == DXT texture compression is supported in HW.
 
APOLLO has an ASM instruction which you provide with U/V/Texture-Pointer, and that will return you the decompressed ARGB texel.

This instruction is fast and handy.
For the future it might be even better to have a new subunit.
Which you feed on time with the parameters needed to raster a row.
And which then does all the row texturing on its own.
Basically same as a VOODOO card did - but in truecolor.


Peeri the Sunlight

Posts 71
20 Sep 2018 20:26


Gunnar von Boehn wrote:

  We are preparing more demo / Game routines for demonstration and as examples.

Is it possible to release sources of some routines and demonstrations. Nicely commented, so perhaps somebody new guy find out that it is not so difficult and start code something new...

I had long time a go idea to make free source bank, where is all kind of routines free to grab, modify and use. Without any need to mention that they have been used, but as kind request that if you grab there something, give something as trade, some routine what might be useful for somebody.

posts 161page  1 2 3 4 5 6 7 8 9