Hello Robert et al,

I've been out of town for the last week, so haven't seen this thread, but just an FYI...

I'm open to adding back a toggle for the timer implementation,
especially if someone else writes it :-)

The other avenue to explore is multi-buffering the Timer is some way
that manages the QueryPerformanceCounter() from different processes.

In most cases I've seen, the erratic timer behaviour on multi-core/Hyperthreaded CPUs has been resolved by implementing this fix:

http://support.microsoft.com/kb/895980

In short: add the /usepmtimer option to the line that describes the OS you boot in the boot.ini file which is in the root dir of your boot drive. For example, if it reads

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Professional" /fastdetect /NoExecute=OptIn

add /usepmtimer like so:

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Professional" /fastdetect /NoExecute=OptIn /usepmtimer

Installing the latest CPU driver from AMD or Intel normally applies this fix automatically, but you can check if it's there by opening the boot.ini file in a text editor. I don't know what the fix does at a low level, but it seems to work.

Of course, the bad news is that it's a per-installation fix, so you can't implement it once in your code base to prevent new users from coming here to report erratic timer behaviour... So if the changes to osg::Timer you propose don't affect precision in unwanted ways, you might want to do those anyways.

Just thought you should know about the MS knowledge base article.

J-S
--
______________________________________________________
Jean-Sebastien Guay     [EMAIL PROTECTED]
                        http://whitestar02.webhop.org/

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to