Thanks for posting this article. However, after reading it, as far as I understand, it's talking about 3D stuff, like any other article on graphic cards these days. So I'm not sure if this would apply to MAME, where all rendering is 2D-based, so there shouldn't be major differences on gpu requirements between frames.
I'd say that what the OP is seeing is the effect of ATI's flip queue size, so that the drivers are rendering some frames ahead without even asking. Nvidia drivers do something similar. There was a program named ATI Tray Tools that allowed you to tweak the "FlipQueueSize" value. I don't know the situation with current drivers, but back in Cat 9.3 the minimum value for FlipQueueSize was hardwired as 2, according to the disassembly of the drivers. Provided this was the issue, it's interesting, however, that according to the OP's tests this only seems to apply to Direct3D, not DirectDraw. It would be good to know the exact OS and drivers versions for these tests.
On the other hand, you have the well known triple buffer issue, which is not MAME's fault but a DirectX feature: DirectX arranges back buffers in a circular queue (sequential), rather than a proper triple buffering model. A good explanation for this is here: http://www.anandtech.com/show/2794/4 (scroll down to the "UPDATE" section).
EDIT: Microsoft does allow to drop frames in the queue in DirectX version 9ex on Windows 7, so a real triple buffer could be implemented nowadays.
Edited by Calamity (04/17/13 01:57 PM)
|