While waiting to get back a working Mediator, I've been fooled by a greedy french amiga fan : my CyberStormPPC rev0 which wasn't working with my GRex 4000D for two BlizzardPPC. I still accepted the deal because there was a rev2 essential to get working this time a GRex 1200 bought long before...
Anyway, this will help to work on both library Warp3D Picasso96 and CyberGraphx4 since the Grex works with this RTG.
Indeed, there is at least a good optimization in W3D_Cgfx4_function_1E : most of the trigonometry from the Motorola sources which I had already mentioned in a previous article is present again in W3D_CyberGfx4.library.
While I still don't know why, the emulated square root (fsqrt.d) is present in the motorola part and Warpd3D author have been deceived, in good faith, believing that is was emulated by the 68040 and 68060 : well no, the mnemonic fsqrt is present in the 68881, 68882, 68040 and 68060 chips.
In short, the full part have been deleted and the two connections have been replaced by a purely simple and much faster "fsqrt.d fp0" ...
Otherwise, while waiting for the Mediator and the fusion of LEMU/LE and BEMU/LE library, I replaced two small functions in the W3D_AvengerLE.library (the same that in previous article "The beta 3" under Picasso96) et I get a good speedup too :
Anyway, this will help to work on both library Warp3D Picasso96 and CyberGraphx4 since the Grex works with this RTG.
Indeed, there is at least a good optimization in W3D_Cgfx4_function_1E : most of the trigonometry from the Motorola sources which I had already mentioned in a previous article is present again in W3D_CyberGfx4.library.
While I still don't know why, the emulated square root (fsqrt.d) is present in the motorola part and Warpd3D author have been deceived, in good faith, believing that is was emulated by the 68040 and 68060 : well no, the mnemonic fsqrt is present in the 68881, 68882, 68040 and 68060 chips.
In short, the full part have been deleted and the two connections have been replaced by a purely simple and much faster "fsqrt.d fp0" ...
Otherwise, while waiting for the Mediator and the fusion of LEMU/LE and BEMU/LE library, I replaced two small functions in the W3D_AvengerLE.library (the same that in previous article "The beta 3" under Picasso96) et I get a good speedup too :
Still using StarShipW3D :
Yet, it's a unique case of course : I should understand why the speedup is so important...
This is reverse engineering : start from a result (here compiled libraries with gcc) and then "back the other way" to understand why and how worked the initial authors and C/C++ compiler...
I already found the datasheets from the Avenger Voodoo GPU which is going to help...
The benchs with GLBlitzQuake ("Timedemo demo1") gives us + 0.4 fps with both new functions, which is a good news, however less impressive...
This is reverse engineering : start from a result (here compiled libraries with gcc) and then "back the other way" to understand why and how worked the initial authors and C/C++ compiler...
I already found the datasheets from the Avenger Voodoo GPU which is going to help...
The benchs with GLBlitzQuake ("Timedemo demo1") gives us + 0.4 fps with both new functions, which is a good news, however less impressive...
(translated by Squaley)