Amiga.org

Amiga computer related discussion => Amiga Software Issues and Discussion => Topic started by: Heiroglyph on June 17, 2011, 04:22:30 AM

Title: What requires an FPU?
Post by: Heiroglyph on June 17, 2011, 04:22:30 AM
I'm trying to find out what 68k applications require an FPU.

By that I mean, what will refuse to run without one?

I'm trying to find the most basic 68k CPU that pretty much all OS legal software would run on and that seems like the 68020 with no MMU or FPU.

Thanks!
Title: Re: What requires an FPU?
Post by: ChaosLord on June 17, 2011, 04:36:39 AM
Quote from: Heiroglyph;645759
I'm trying to find out what 68k applications require an FPU.
Lightwave 3D, Imagine, Aladdin 4D, etc.
All 3D gfx apps.

Pagestream, Art Expression, WordWorth, FinalWriter etc.
All 2D Desktop Publishing apps.

Mp3 players, .ogg players, video players, anything that lossy compresses or decompresses audio or video.

Anything that handles postscript or truetype fonts.

A few games.

A few utils.
Title: Re: What requires an FPU?
Post by: itix on June 17, 2011, 05:56:43 AM
Quote from: ChaosLord;645762
Pagestream, Art Expression, WordWorth, FinalWriter etc.
All 2D Desktop Publishing apps.


Are you sure? I recall at least WW and FW run on unexpanded Amigas without an FPU.
Title: Re: What requires an FPU?
Post by: ChaosLord on June 17, 2011, 06:42:00 AM
Quote from: itix;645776
Are you sure? I recall at least WW and FW run on unexpanded Amigas without an FPU.
I only ever ran WW and FW on Amigas with FPUs so all I can really say is they really need an FPU, especially during printing, for smooth-scaling the scalable fonts.
Title: Re: What requires an FPU?
Post by: Piru on June 17, 2011, 06:51:34 AM
Quote from: ChaosLord;645762
Lightwave 3D, Imagine, Aladdin 4D, etc.
All 3D gfx apps.

Pagestream, Art Expression, WordWorth, FinalWriter etc.
All 2D Desktop Publishing apps.

Mp3 players, .ogg players, video players, anything that lossy compresses or decompresses audio or video.

Anything that handles postscript or truetype fonts.
I'm fairly sure that most of these do not require an FPU. Only some very specific apps have been compiled by using the FPU instructions directly.
Quote
they really need an FPU, especially during printing, for smooth-scaling the scalable fonts.
There's nothing in scalable fonts that'd require FPU.
Title: Re: What requires an FPU?
Post by: Heiroglyph on June 17, 2011, 07:38:38 AM
Yes, just to clarify:

I don't care what can optionally take advantage of an FPU.

What won't run without one?

Thanks
Title: Re: What requires an FPU?
Post by: ChaosLord on June 17, 2011, 08:33:20 AM
Quote from: Heiroglyph;645797
Yes, just to clarify:

I don't care what can optionally take advantage of an FPU.

What won't run without one?

Thanks

@Heiroglyph and Piru

Well nothing requires an FPU if u want to get technical.

You can just run an FPUpatch that emulates the missing FPU instructions.

I do not recommend doing this as they generate a TON of interrupts that mess up mouse movements and damage the multitasking, unless it is like OxyPatcher, which I have heard good things about but never actually used.

Most software (all software that I have peeked at the sourcecode to) that renders scalable fonts, does lots of heavy floating point math.  I have heard that the compugraphic fonts are coded to be 100% integer. (They have size limitations as a result).  But PostScript definitely does hardcore FP work.  So I assume TrueType does too.

As a practical matter, all good mp3 players use floating point.  You need the FPU for speed reasons.  No FPU = too slow to be useful.
There are integer mp3 sourcecodes available but they generate sloppy sound.  It says so right in the readme file.
Title: What requires an FPU?
Post by: Karlos on June 17, 2011, 08:34:36 AM
Warp3D requires an FPU.
Title: Re: What requires an FPU?
Post by: Daedalus on June 17, 2011, 10:01:57 AM
Well, these are things that can use an FPU indeed, but I think most of those apps and tasks either detect that no FPU is present and use integer maths instead, or have separate non-FPU executables. MP3 players for example don't need an FPU, but if you use it it gives a more accurate result. If you use the FPU version of MPEGA.library however, it is actually slower than the integer version, so it's nothing to do with integer being "too slow to be useful."
Title: Re: What requires an FPU?
Post by: Piru on June 17, 2011, 10:15:13 AM
Quote from: ChaosLord;645802
As a practical matter, all good mp3 players use floating point. You need the FPU for speed reasons.  No FPU = too slow to be useful. There are integer mp3 sourcecodes available but they generate sloppy sound.  It says so right in the readme file.

Actually that is not the case. See: http://www.underbit.com/products/mad/

libmad is used in a replacement MPEGA.library for amiga, resulting in significantly faster decoding than when using FPU: http://aminet.net/package/util/libs/mpega_libmad
Title: Re: What requires an FPU?
Post by: psxphill on June 17, 2011, 10:46:14 AM
Quote from: Piru;645809
Actually that is not the case. See: http://www.underbit.com/products/mad/
 
libmad is used in a replacement MPEGA.library for amiga, resulting in significantly faster decoding than when using FPU: http://aminet.net/package/util/libs/mpega_libmad

Yeah, I always used integer back in the day. The FPU accelerates floating point, but fixed point is faster. Plus fixed point is more accurate.
 
All floating point maths does is sacrifice accuracy for range for lazy coders. You never use floating point for financial calculations, because it's innaccuracy means you lose money.
Title: Re: What requires an FPU?
Post by: ChaosLord on June 17, 2011, 10:53:54 AM
@Piru et al.
Kewl!   Thanx 4 da infos!  Finally someone made a good integer mp3 playback routine!!!  I was looking for one about 3 years ago and could not find one anywhere! :(

I mean the one I found was integer but it was claimed to not actually be any faster and it was definitely a lot more inaccurate.  It said its sole purpose was to run on devices that lacked an FPU therefore it was a success in that regard.

Sounds as if libmad is like PFS3 for mp3 playback :)
Title: Re: What requires an FPU?
Post by: TheGoose on June 17, 2011, 04:37:48 PM
Hmm, usefulness on FPU is looking pretty low in this thread. FPU, you need to go get a job!
Title: Re: What requires an FPU?
Post by: Iggy on June 17, 2011, 05:56:14 PM
This thread is encouraging. After looking at the mythical "FE133" chips used on one version of the Natami '060 board, I've decided to look at MC68EC060RC75 chips as a possible overclocking processor.
It appears that'060s without an MMU or FPU can overclock better.
I believe it might be possible to get to 100Mhz or better.
Title: Re: What requires an FPU?
Post by: SpeedGeek on June 17, 2011, 06:28:05 PM
FPU version is more accurate but slower than integer version!
See the readme for mpega.library here:
http://fi.aminet.net/util/libs/mpega_library.readme
 
However, for apps which actually require Floating Point support hardware FPU is certainly faster than Floating Point emulation.
Title: Re: What requires an FPU?
Post by: Piru on June 17, 2011, 06:42:51 PM
Quote from: SpeedGeek;645899
FPU version is more accurate but slower than integer version!
See the readme for mpega.library here:
http://fi.aminet.net/util/libs/mpega_library.readme
 
You realize this is a different code base than the libmad MPEGA library linked before? Just because the original integer MPEGA.library accuracy is lower doesn't mean that this would be some kind of generic rule. The original interger MPEGA.library just sucks. From the libmad MPEGA.library readme:
Code: [Select]
- Very high quality decoding (better than the FPU version of the original).
Title: Re: What requires an FPU?
Post by: Heiroglyph on June 17, 2011, 06:51:47 PM
I wouldn't worry about speed, this isn't a real CPU.

It's going to be an emulation, but not the overkill for my use UAE JIT.

If you ignore all the unused parts and have no timing constraints, you can make a pretty fast processor in a shorter period of time.

It's somewhere between an 030 and an 040, minus the MMU and FPU at this point and I hoped to put off writing the FPU if possible.
Title: Re: What requires an FPU?
Post by: golem on June 17, 2011, 08:19:09 PM
For me an FPU was a must-have once I got an accelerator that had a space for one.
11 years later I'm still waiting to find a use for it though!
Title: Re: What requires an FPU?
Post by: Rob on June 17, 2011, 08:51:03 PM
The only piece of commercial software I can think of that requires an FPU is Clickboom's Quake port.

I think there are probably quite a few AGA demos that require one.
Title: Re: What requires an FPU?
Post by: Heiroglyph on June 17, 2011, 09:21:58 PM
UAE is already available and specialized for those cases, I'm only worried about OS legal applications.

I think I've got enough info to go on at this point.  I don't think I'll have to do the FPU.

Thanks.
Title: Re: What requires an FPU?
Post by: SpeedGeek on June 18, 2011, 01:31:06 AM
Quote from: Piru;645902
You realize this is a different code base than the libmad MPEGA library linked before? Just because the original integer MPEGA.library accuracy is lower doesn't mean that this would be some kind of generic rule. The original interger MPEGA.library just sucks. From the libmad MPEGA.library readme:
Code: [Select]
- Very high quality decoding (better than the FPU version of the original).

Also from the libmad MPEGA.library:
- Very low CPU usage (integer original is still faster on 68k though).
 
The point I was trying to make is that integer math is almost always faster than floating point math on 68K. The execution speed of integer or floating point instructions is completely irrelevant to accuracy.
Title: Re: What requires an FPU?
Post by: Iggy on June 18, 2011, 01:40:25 AM
Quote from: Karlos;645803
Warp3D requires an FPU.

Cuubk

coks

Couln't the 68K emulate a 69000/20/30 Fpu? How abiout emulaoingr om pu ftom an '30.







k rmiiulatevand fou/
Title: Re: What requires an FPU?
Post by: Heiroglyph on June 18, 2011, 01:48:23 AM
Looks like you might need to emulate a keyboard ;)
Title: Re: What requires an FPU?
Post by: smerf on June 18, 2011, 02:20:37 AM
Quote from: Heiroglyph;645759
I'm trying to find out what 68k applications require an FPU.

By that I mean, what will refuse to run without one?

I'm trying to find the most basic 68k CPU that pretty much all OS legal software would run on and that seems like the 68020 with no MMU or FPU.

Thanks!


Hi,

An FPU (floating point unit) is mostly used for mathematical calculations, I really don't think a program will refuse to run with out one, it is just that it will take longer to make the math calculations. Spreadsheets and 3D rendering actually use an FPU if there is one available in the machine.

So ......

adding an FPU should make some programs run faster if they are coded to use it.

smerf
Title: Re: What requires an FPU?
Post by: LaserBack on June 18, 2011, 04:56:48 AM
Quote from: Rob;645921
The only piece of commercial software I can think of that requires an FPU is Clickboom's Quake port.

I think there are probably quite a few AGA demos that require one.


yes...quake is the unique amiga game that requires fpu...that's why is so slow
also duke nukem 3d requires fpu but is for mac anyways if you run the game under emulation via shapeshifter you need fpu

also
 
-some ppl posted incorreclty that some apps required FPU and that's not true
-mp3 player do not requires fpu....all mp3 players uses mpega library and there is a integer version and fpu version......of course the faster version is the integer used to play and the fpu version is for precision


and yes...there are not commercial software that requires FPU
anyways I can guarantee that the program Simplemail requires FPU...don't ask me why the author did that mistake
Title: Re: What requires an FPU?
Post by: Piru on June 18, 2011, 08:11:28 AM
Quote from: LaserBack;646000
of course the faster version is the integer used to play and the fpu version is for precision

Incorrect. The most precise one is the libmad integer MPEGA.library.
Title: Re: What requires an FPU?
Post by: bbond007 on June 18, 2011, 08:49:16 AM
Quote from: Heiroglyph;645759
I'm trying to find out what 68k applications require an FPU.

By that I mean, what will refuse to run without one?

I'm trying to find the most basic 68k CPU that pretty much all OS legal software would run on and that seems like the 68020 with no MMU or FPU.

Thanks!


I had a A1200 accelerator with defective FPU and that would cause more problems than you'd think...
Title: Re: What requires an FPU?
Post by: tasmanian guy on June 18, 2011, 09:09:12 AM
Vista landscape generator when installed with fpu option 6881 icon, requires a FPU ;-)