CompuServe Messages

#HiSpeed POV

    01-May-93 03:46:23
Sb: #HiSpeed POV
Fm: David J Harr 72117,1704
To: All
Well, Having a bit of spare time on my hands, and not having done anything on POV-Ray in several months except to keep in contact with Eduard to let him know I was alive, the other day I was spurred to see if I could improve the performance of POV-Ray on my Quadra. For those of you unfamiliar with the Quadra's 68040 chip, it has the great majority of the functionality of an FPU built right into the chip. However, not all of the commands are implemented in silicone. The '040 provides support for the entire 68882 floating–point coprocessor instruction throught emulation software which Motorola wrote. Therfore, any FPU call that is not in the chips instruction set is executed by this emulation software. It turns out that there are three floating point calls on the '040 that one should never make, due to the incredible slowness of the emulation software. So, this evening, I tweaked the output of my compiler (which is not smart enough to do '040 optimizations) to replace all occurences of these floating point calls with equivalent calls that are implemented in the '040 chip in hardware. This resulted in a 30x to 50x speedup when ever any of these calls were made. When I ran a couple of scene files through my tweaked version of the raytracer, imagine my shock at discovering that a couple of the files rendered 5 to 8 times faster using my version of the program than the version that we compiled and uploded to the forum. Again, this is using the unmodified POV-Ray 1.0 source with just the simple replacement of two '040 floating point calls with different, equivalent, calls. I think this clearly points to a need for a special 68040 version of this program for Quadra and Centril owners who have the full blown 68040 with the FPU. In a couple of weeks, I will be getting a version of gcc 2.33 which runs under MPW, which is capable of producing '040 optimized code, and I will not have to try and do hand substitution for the opcodes. David. There is 1 Reply. Read action !