Windows Vista/7 Tweaks

Caporegime
Joined
8 Sep 2006
Posts
37,951
Location
On Ocuk
Other Forum Links

http://forums.electronicarts.co.uk/battlefield-bad-company-2-pc/1273328-performance-tweaks.html

http://forums.guru3d.com/showthread.php?t=327922


====================


Windows 7 Tweak List (Primarily for SSD users)

Windows 7 - Ultimate SSD Speed Tweaks

Go into your control panel and uninstall NVIDIA Stereoscopic 3D driver, you should get a FPS increase
(If you don't use Stereo 3D)

Apply the SG Vista TCP/IP Patch
Detailed article: SpeedGuide.net :: Windows 7, Vista, 2008 Tweaks

Apply the SG TCP Optimizer
  • You should use optimal settings + TcpAckFrequency=1, TcpNoDelay=1
  • DO NOT activate LargeSystemCache, you may experience a severe, random decrease in performance and random burst of lag
  • ecncapability=disabled or you won't be able to log into EA Online


Go to your network adapter properties, disable Flow Control and Interrupt Moderation

Improve your programs/games loading time by disabling your paging file

An update is available for Windows 7 and for Windows Server 2008 R2 which provides new functionality and performance improvements for the graphics platform

Fernando's Optimized NVIDIA nForce Driver Packs

Disable CPU Enhanced Halt (C1E), EIST (SpeedStep) & Cool'n'Quiet

PAX's Tweaked Drivers for Creative Soundcards

(Reduce your audio sample rate to 16 bit, 48000 Hz to improve network to cpu prioritization and to reduce DPC latency) - Works for some

Disable Core Parking Windows 7 Tweak may improve performance

Turn Off Search Indexer

Windows 7 Ping Spikes [FIX] (NetworkThrottlingIndex=FFFFFFFF hex)

disable TCP/IPv6 to fix lag spikes, disable everything except TCP/IPv4 if you don't share with other LAN computers


HPET Tweak!

Part 1
MSI Afterburner does lock-up/freeze system after ~15 mins, here the fix/solution: [Solution/Workaround] Battlefield: Bad Company 2 Locking up/Freezing/Crashing - Guru3D.com Forums

For various crashes, choppiness, fps drops here what I think cause it. It's not Realtek, not PunkBuster, not DICE. It's timers issues.
Windows use both Time Stamp Counter and PM Timer by default, enforce the use of PM Timer only and the game run awesomely.

For Windows Vista/7 open up a command window and type in:

bcdedit /set useplatformclock true

Reboot

For Win XP: Programs that use the QueryPerformanceCounter function may perform poorly in Windows Server 2000, in Windows Server 2003, and in Windows XP

Windows will now run Local APICs or HPET (if enabled) as the only timer instead of getting out of sync with a mixture of TSC+ACPI timers.

It's all preliminary informations until I format it better for the main post, report back your experience with it!

Game Timing and Multicore Processors
Time Stamp Counter - Wikipedia, the free encyclopedia
Intel APIC Architecture - Wikipedia, the free encyclopedia
Explanation for the USEPMTIMER switch in the boot.ini - PERFGURU - Site Home - TechNet Blogs
Does anyone know exactly what the /usepmtimer switch does when placed in a Microsoft Windows boot.ini?

WinTimerTester 1.1 http://www.xtremesystems.org/forums/...postcount=4338

On my system: Intel Quad Q9550 @ 3900MHz +P45 Chipset

WinTimerTester QueryPerformanceFrequency

TSC+LAPICs (useplatformclock false) 2.76xxxMHz
LAPICs (useplatformclock true) 3.57955MHz
TSC+HPET (useplatformclock false) 3.81013MHz
HPET (useplatformclock true) 14.31818MHz

You start get issues with the game a lot faster if HPET is enabled with TSC but not if HPET is alone (useplatformclock true).

I really think this is the magic fix we all hoped for, it's a shame the IT community still have not addressed this, Google is almost mute on it too. So try it and report back, thanks.
PART 2
So what is the difference between 32bit and 64bit HPET, because I have those 2 options in BIOS?
WinTimer Tester shows me frequency of 3.51568 MHz without platformfclock fix, but it measures perfect 1.00000 ratio, so should I still perform this fix?

In bios If you run Windows x32-x86, select HPET x32. If you run Windows 64 bits, select HPET x64.

Forget about that ratio thing, it's not our issue, it's only useful to know for SetFSB overclockers.
I used that tool to demonstrate variation of QueryPerformanceFrequency with different settings.

By default Windows 7 seem to use a mixture of TSC + PMTimer (ACPI Timer), which is bad at least for BC2 getting out of sync as minutes pass by. Rounds/maps reloading or low tickets count mitigate crashes/increasing stuttering-choppiness mostly well under TSC+LAPICs but under TSC+HPET it's quite ugly after only ~15mins.

So the real fix is enforcing PMTimer (Power Management Timer, ACPI Timer) across the whole system, so no parts of Windows under TSC get out of sync with other parts under PM Timer. That's my understanding.

Two PM Timers exist, for somes Local APICs is the default, for other it is HPET. You have to verify in your BIOS if HPET option exist to enable it.
But even with no HPET option, depending your motherboard manufacturer, you may have it enabled. Then check in Device Manager> System devices for "High precision event timer" to appear which mean it is enabled.
Don't forget to type "bcdedit /set useplatformclock true" in an admin command prompt, because HPET not alone is the worst case.
IF you don't have HPET, LAPICs is still very good, what matter is to only use one kind of timer for BC2, this will fix most CTD & issues not related to servers/network parameters (check first post for optimal settings).

Edit: Probably TSC could do the job right too if alone but I think it's impossible to disable LAPICs which is the default PM timer if HPET is off. You can't revert to "Standard PC" from "ACPI PC" with Win7 like it was possible under XP, for Vista I don't know.

HPET + platformclock=true will give you best timer resolution, frame rate and lowest DPC latency.
Also here
http://forum.notebookreview.com/7364805-post14.html

The problem you guys are running into is a new Windows 7 "feature".

To accurately measure time in a Windows PC, software uses the QueryPerformanceCounter function. Many applications, especially games, depend on this Windows function to accurately calculate FPS as well as for many other timing purposes in game including sound.

The problem is that for many computers, this function in Windows 7 is now based on the clock speed of the processor. If you overclock in the bios and then boot up, this timer is calibrated and will work 100% correctly. If you use SetFSB or a similar program and you change the bus speed from within Windows, you have now just screwed up this very important timing mechanism. The number of applications that can choke after you do this is surprising, especially games.

I wrote a program called WinTimerTester to test for this problem.

WinTimerTester 1.1
http://www.mediafire.com/?xzo9n84d8lze9nb
http://www.sendspace.com/file/xadvhe

What it does is it runs two different clocks in your CPU at the same time and compares them to make sure they are both running at the same speed. It compares the Windows GetTickCount function to the QueryPerformanceCounter function and within approximately 60 to 100 seconds, these two timers should be running at a perfect 1.0000 : 1 ratio.

If you overclock your CPU with SetFSB and WinTimerTester reports that these timers are not running at a 1.0000 : 1 ratio, that shows that you have this bug and you have also overclocked this important timer within your computer which can screw up a variety of programs in a variety of ways.

Luckily there is a solution to this Windows bug. Microsoft actually considers this a feature but for anyone that uses SetFSB on a regular basis, it's a big bug.

To fix this problem, open up a command window and type in this:

bcdedit /set useplatformclock true

You will have to exit the command window and reboot before this setting can take affect. What this does is it changes Windows so the QueryPerformanceCounter function will be based on a fixed counter that is not influenced by SetFSB. That one line of code should correct this problem and your games will run fine when using SetFSB.

If you ever want to go back to the original buggered up timer that Windows uses then open up a command window and type in this.

bcdedit /deletevalue useplatformclock

Once again, reboot and things will be back to the default Windows 7 timer. These two images should show you when your internal timers are broken and what WinTimerTester will report when your internal timer is fixed. This only applies to Windows 7. There is a similar fix for Windows XP so PM me if you need it.

http://img202.imageshack.us/img202/3778/timerbroken.png

http://img96.imageshack.us/img96/8417/timerfix.png

Let me know if this finally solves your problem. My friend some_one over on XtremeSystems told me about this little trick.

Disgustipated: On a different note. It would be a good idea to run ThrottleStop and increase your TDP/TDC settings to ensure that you get full turbo boost when you are overclocking with SetFSB. If you don't increase TDP/TDC then your bus speed can go up but your multiplier might go down when fully loaded so you won't get the full benefit of your overclock. Send me a PM if you need to know more about how to properly test for full turbo boost at full load.

One last thing. Many 3D gaming benchmarks don't correct for this problem so you can't trust their results when using SetFSB if your laptop has this timing issue. I believe the 3DMark series corrects for this problem and can be trusted.
 
Last edited:
Soldato
Joined
31 May 2009
Posts
21,257
Which of these have shown you actual improvement, and in what areas?
Turning the sound quality down and unintalling drivers and devices, is this actually producing a notable improvement on a modern computer?

Indexer I understand, but once it is run, it doesn't need to do lots more unless the filestructure is actively changing.
 
Caporegime
OP
Joined
8 Sep 2006
Posts
37,951
Location
On Ocuk
-C1E, EIST e.t.c is something many people do when overclocking q6600's
-PAX, Sound far far better than creatives and have a mix and match of new beta software
-Reducing my audio doesn't seem to have done anything at all performance wise, but it sounds the same as 24bit
-Disable core parking, is still being tested
-Search Indexer is an old tweak and is always recommended to be disabled
-Windows 7 ping spike fix is another very recommend tweak, especially noticable for bfbc2
 
Last edited:
Soldato
Joined
23 Nov 2007
Posts
3,017
Location
Midlands
Nice effort Neil. I'm sure plenty of people will give it a try, but in my experience, it's not worth trying to tweak windows. It always seems to **** something up somewhere or other.

If it ain't broke, don't fix it
 
Joined
5 Oct 2008
Posts
8,977
Location
Kent
Nice effort Neil. I'm sure plenty of people will give it a try, but in my experience, it's not worth trying to tweak Windows 7. It always seems to **** something up somewhere or other.

If it ain't broke, don't fix it

Fixed. I had to tweak XP to get the best out of it, but Windows 7 seems to work much better out of the box. :)

Though as Rob says, nice effort Neil, I will have a look at some of your tweaks in more detail and see how it works out.
 
Back
Top Bottom