9.4.4 Does POV-Ray support 3DNow?
No, and most likely never will.
There are several good reasons for this:
- 3DNow uses single precision numbers while POV-Ray needs (yes, it needs)
double precision numbers. Single precision is not enough (this has been
tested in practice).
(To better understand the difference between single and double precision
numbers, imagine that you could represent values between 0 and 1000 with
single precision numbers. With double precision numbers you don't get
a scale from 0 to 2000 (as one might think), but from 0 to 1000000. The
difference is enormous and single precision is not precise enough for
what POV-Ray does.)
- Adding support for 3DNow (or any other CPU-specific feature) to POV-Ray
would make it platform-dependant and not portable. Of course one could
make a separate binary for AMD supporting 3DNow, but there are only
two ways of doing this:
- Compiling POV-Ray with a compiler which automatically can make
3DNow code from C. As far as I know, no such compiler exists
which converts double precision math used in POV-Ray to single
precision math needed by 3DNow. I don't event know if there's any
compiler that supports 3DNow at all.
- Changing the source code by hand in order to use 3DNow instructions.
This is a whole lot of work (specially because you'll probably have
to use inline assembler). The source code of POV-Ray is not very
small. Would it be worth the efforts?
Note: There are a few things in POV-Ray that use single
precision math (such as color handling). This is one field where some
optimization might be possible without degrading the image quality.