Wednesday, November 11, 2015

Getting closer to Warp Speed!

The past few months I've told people again and again that the context-switch (the switch between both CPUs) was a major pain in getting to the full speed of the 500MHz MPC750 processor. With the time anything being between 12-20ms. This is a very long time if you take into account that the CyberStormPPC performs a context-switch within 0.5ms (so 25-40 times faster).

With the exchange of the Voodoo3 card with a Radeon card I even noticed the context-switch time going up to 90ms. At first it was a real bummer, then it dawned upon me that something was not right.

Further investigation revealed that the Sonnet was not connected to any interrupt line properly all this time. The interrupt being looked at was actually being triggered by the voodoo card. The Radeon card lacked this interrupt resulting in the longer context-switch time. (Technically, the 12-20ms while using the Voodoo was actually some kind of VBLANK of the Voodoo card, dependent on the actual refresh rate of the screen).

So the code was rewritten to let the pci.library set up the interrupt (no, I don't have the Elbox SDK...) and the following was the result:

This is almost exactly like the context-switch time as found on the CyberstormPPC cards. But what does this mean in real-life performance? Remember Quake doing 28FPS in the previous video at 320x240x8 (with the Voodoo3)? is a screenshot while using the new code (and the Radeon):

This is much closer to the expected performance. For example, Mediator plus Voodoo3 plus CyberstormPPC 233MHz does 30 FPS according to This is all still using software renderers, by the way.

Next up is to try to get it all working in an A1200TX mediator. Stay tuned!

No comments:

Post a Comment