Odd FPS
Some other things that don't work:
Tweaking PCI latency to favour either the sound or video card.
Changing the AGP aperture size from 256MB to 512MB.
Disabling the AC97 in the BIOS altogether.
Disabling Avast antivirus (I normally run with it disabled when playing CoX).
Setting Windows Performance options to favour system cache not programs for memory use.
I don't have a vast raft of junk running in the background; my system tray is devoid of mess. Atitray is about it.
Obviously I'm happy to provide more information / try suggestions from the audience.
I reported it to Support (bit of a radical idea, I know, but this thread has really crystallised the idea that I have a definite problem). Done the "upgrade drivers" dance (having three sound devices helps here, because it demonstrates it's not just a broken sound device). They seem to be saying that they also believe that other players have the same problem and have forwarded it to QA. We shall see what happens.
Every now and then I get fed up of having to run taskforces and big teams on silent, and look into this again.
Today's experiment was interesting; replace every sound in the game with an ogg file of silence, as short as possible (unless it is a loop, in which case I used about ten seconds of silence) to minimise the amount of ogg decoding to be done. Somewhat to my surprise, this worked; the lag spikes are very much reduced.
If conversely the replacement files contain the original ogg data, the lag spikes still exist. I tested this in case the issue was simply with the game ungzipping piggs on the fly.
The next step, I think, is to bisect the set of sound files repeatedly in the hope of identifying one effect or a small subset of the effects which get played very often; but it's twenty to five, so maybe not tonight.
The next step, I think, is to bisect the set of sound files repeatedly in the hope of identifying one effect or a small subset of the effects which get played very often; but it's twenty to five, so maybe not tonight.
|
I wrote a quick Perl script to replace chunks of the ingame sound FX with a short ogg of silence (or a long one for the -loop FX); do the first 2048, see if the FPS improve, do the second 2048 (there's actually about 4300), start splitting it up by blocks of 1024... and chopped my demo up to get just the problematic section, so I could use -demoloop 4 -demoframestats 1 to measure the FPS rather than just eyeballing the laggy bits.
That's http://www.chiark.greenend.org.uk/~d...horter.cohdemo - if anyone's interested (particularly someone with a system similar to mine - 1.8Ghz Athlon 64, 2 gigs of memory, Radeon X1950 Pro - I'd be fascinated to know what framerate you get.)
Sound off, I get 55FPS average, minimum 16 (not counting the minimum from the first run, as -demoframestats doesn't, when the game hiccups wildly at startup). Sound on, 30 FPS, minimum about 5.
Replace all sounds with silence, 45 FPS, minimum still about 5. Start taking out chunks of sounds - it's no good. The FPS hovers around 35, and more importantly the minimum (which corresponds to the annoying lag hiccups) stays around 5.
I'd hoped, you see, that there'd be one particular chunk of FX that gets used for every lousy particle, and if I replaced that with the shortest possible sound, I'd be able to improve FPS without doing much to how the game sounds. But I guess there isn't, and I guess furthermore - although this really is speculation - the way that the average FPS is higher but the minimum is no better when all sounds are short-silence means the low-FPS spikes are caused by a lot of sounds all going off at once. If they didn't go off together, the shortening would let some of them finish before others started.
So... can it really be not simultaneous audio channels beyond what my soundcard likes, but the CPU work of OGG decoding? The next idea was to test that theory by reencoding all the game audio as 11025 Hz, downsample stereo to mono, use oggenc's lowest quality setting.
What do you know? 55FPS average, minimum frame rate 15 FPS. Of course there is the slight downside that the game sounds like you're at the bottom of a well, but on the other hand, right now I do taskforces in complete silence, and perhaps some less aggressively awful encoding still won't kill the framerate?
On the other hand, I'm not sure I believe this theory. Sure, my CPU isn't all that fast today, but it was plenty fast when CoX was released - almost as fast a CPU as you could buy (and much faster than the 750MHz Athlon I was actually using); and while the game's graphics have changed a lot it sounds much the same as it always did.
Reencode at 44100Hz but minimum quality (which reduces the bitrate to about 1/3 normal) - sounds normal, 45FPS, minimum 5.5FPS. So... still getting the lag spikes. Boo.
On the other hand, I'm not sure I believe this theory. Sure, my CPU isn't all that fast today, but it was plenty fast when CoX was released - almost as fast a CPU as you could buy (and much faster than the 750MHz Athlon I was actually using); and while the game's graphics have changed a lot it sounds much the same as it always did.
|
The sounds HAVE actually gone through some changes as well.. even as recently as i15... but I think that was more of a sound replacement
|
But yes, I was wrong to say sound hasn't changed at all.
Please post new:
- CoH Helper - it will show us basic computer settings and your CoH configuration.
- HijackThis - it will show us what's running on your computer concurrently with CoH. Click on "Do a system Scan and save a logfile." It will automatically open up Notepad and put the info there. Make sure Wordwrap is off in Notepad (Format > Wordwrap unchecked) before you cut and paste here.
Speeding Through New DA Repeatables || Spreadsheet o' Enhancements || Zombie Skins: better skins for these forums || Guide to Guides
Please post new:
|
If the game spit out 20 dollar bills people would complain that they weren't sequentially numbered. If they were sequentially numbered people would complain that they weren't random enough.
Black Pebble is my new hero.
CoH Helper tells me "Unable to read your City of Heroes Registry information". Once again its page file information is rather implausible. My registry settings for COH and EUCOH have not changed appreciably from those above, though.
Logfile of Trend Micro HijackThis v2.0.2
Scan saved at 04:13:54, on 05/10/2009
Platform: Windows XP SP1 (WinNT 5.01.2600)
MSIE: Internet Explorer v6.00 SP1 (6.00.2800.1106)
Boot mode: Normal
Running processes:
H:\WINDOWS\System32\smss.exe
H:\WINDOWS\system32\winlogon.exe
H:\WINDOWS\system32\services.exe
H:\WINDOWS\system32\lsass.exe
H:\WINDOWS\system32\svchost.exe
H:\WINDOWS\System32\svchost.exe
E:\apps\adaware\aawservice.exe
e:\apps\avast\aswUpdSv.exe
e:\apps\avast\ashServ.exe
H:\apps\PCI Latency Tool 3\LtcyCfgSvc.exe
H:\WINDOWS\System32\svchost.exe
H:\WINDOWS\Explorer.EXE
E:\apps\avast\ashDisp.exe
H:\Program Files\Ray Adams\ATI Tray Tools\atitray.exe
H:\WINDOWS\System32\ctfmon.exe
I:\games\CoX\CityOfHeroes.exe
E:\apps\web\browsers\phoenix\firefox.exe
H:\Program Files\Trend Micro\HijackThis\HijackThis.exe
O4 - HKLM\..\Run: [avast!] e:\apps\avast\ashDisp.exe
O4 - HKCU\..\Run: [AtiTrayTools] "H:\Program Files\Ray Adams\ATI Tray Tools\atitray.exe"
O4 - HKCU\..\Run: [ctfmon.exe] H:\WINDOWS\System32\ctfmon.exe
O17 - HKLM\System\CCS\Services\Tcpip\..\{10DDCE90-05D2-4D42-B058-8FF3ECD88FF8}: NameServer = 192.168.93.1
O17 - HKLM\System\CCS\Services\Tcpip\..\{3EFB5005-2DCD-4751-A551-E94D90BC779F}: Domain = elided.example.com
O17 - HKLM\System\CCS\Services\Tcpip\..\{3EFB5005-2DCD-4751-A551-E94D90BC779F}: NameServer = 192.168.93.1
O17 - HKLM\System\CCS\Services\Tcpip\..\{6C204825-91B2-4D1A-A9D7-68DF7E5EB082}: NameServer = 192.168.93.1
O17 - HKLM\System\CCS\Services\Tcpip\..\{744C5361-EBE3-4CC6-8639-4A04579F85FC}: NameServer = 192.168.93.1
O17 - HKLM\System\CS1\Services\Tcpip\..\{10DDCE90-05D2-4D42-B058-8FF3ECD88FF8}: NameServer = 192.168.93.1
O18 - Protocol: skype4com - {FFC8B962-9B40-4DFF-9458-1830C7DD7F5D} - H:\PROGRA~1\COMMON~1\Skype\SKYPE4~1.DLL
O20 - AppInit_DLLs: H:\WINDOWS\System32\wmfhotfix.dll
O23 - Service: 3ZU9CA - CPUID - E:\apps\pcwiz2009\Data\pcwizntl.exe
O23 - Service: Ad-Aware 2007 Service (aawservice) - Lavasoft - E:\apps\adaware\aawservice.exe
O23 - Service: avast! iAVS4 Control Service (aswUpdSv) - ALWIL Software - e:\apps\avast\aswUpdSv.exe
O23 - Service: Ati HotKey Poller - ATI Technologies Inc. - H:\WINDOWS\System32\Ati2evxx.exe
O23 - Service: ATI Smart - Unknown owner - H:\WINDOWS\system32\ati2sgag.exe
O23 - Service: avast! Antivirus - ALWIL Software - e:\apps\avast\ashServ.exe
O23 - Service: Imapi Helper - Alex Feinman - E:\apps\isorecorder\ImapiHelper.exe
O23 - Service: PCI Latency Tool Service (LtcyCfgSvc) - Unknown owner - H:\apps\PCI Latency Tool 3\LtcyCfgSvc.exe
--
End of file - 2604 bytes
---System information gathered by CoH Helper version 0.1.1.8---
DxDiag gathered at October 5, 2009 04:10 (+01:00)
Operating System: Windows XP Professional (5.1, Build 2600) Service Pack 1 (2600.xpsp1.020828-1920)
System Manufacturer: NVIDIA
System Model: AWRDACPI
BIOS: )Phoenix - Award WorkstationBIOS v6.00PG
Central Processor: AMD Athlon(tm) 64 Processor 3000+, ~1.8GHz
Memory: 2560MB
.Net Memory Report: 691MB out of 2559MB available
Page File: 846MB (1560MB currently in use)
C Drive: (QUANTUM FIREBALLP AS20.5) 5395MB out of 6993MB (77%) free
D Drive: () 2296MB out of 13935MB (16%) free
E Drive: () 1164MB out of 8706MB (13%) free
F Drive: () 2967MB out of 17014MB (17%) free
G Drive: (QUANTUM FIREBALLP AS20.5) 4784MB out of 5918MB (80%) free
H Drive: (QUANTUM FIREBALLP AS20.5) 1480MB out of 6675MB (22%) free
I Drive: () 2289MB out of 17491MB (13%) free
K Drive: () 4094MB out of 17466MB (23%) free
Windows directory location: H:\WINDOWS
DirectX: DirectX 9.0c (4.09.0000.0904)
DirectX Diag version: 5.03.0001.0904 (32-bit version)
Display Notes: No problems found.
Sound Notes: No problems found.
No problems found.
No problems found.
Input Notes: No problems found.
Monitor: Iiyama A201HT VisionMaster Pro 510
Monitor's Max Resolution: 2048,1536
Video Device Name: Radeon X1950 Pro
Manufacturer / Chip: ATI Technologies Inc. / ATI Radeon Graphics Processor AGP (0x7280)
Video Memory: 512.0 MB
Driver Version: 6.14.0010.6879
Driver Date: 01/01/0001 00:00:00
Driver Language: English
Sound Device Description: Realtek AC97 Audio
Driver File: ALCXWDM.SYS
Driver Version: 5.10.0000.6300
Driver Date: 01/01/0001 00:00:00
Sound Device Description: Aureon 7.1 PCI
Driver File: cmuda3.sys
Driver Version: 5.12.0001.0047
Driver Date: 01/01/0001 00:00:00
Sound Device Description: Logitech USB Headset
Driver File: usbaudio.sys
Driver Version: 5.01.2600.1106
Driver Date: 01/01/0001 00:00:00
WMI Information
Motherboard Manufacturer:
Motherboard Model: (empty)
Motherboard Product: nForce
Motherboard Version:
BIOS Manufacturer: Phoenix Technologies, LTD
BIOS Name: )Phoenix - Award WorkstationBIOS v6.00PG
BIOS Version: Nvidia - 42302e31
BIOS Release: 20060607******.******+***
Upgrade to at least Service Pack 2, preferably to Service Pack 3. You have some gaping security holes by not being patched up.
Also, it looks as if your video driver and audio driver installations are corrupted, which is the reason that the dates are funky.
To get the drivers installed correctly, install DriverSweeper but don't run it yet, uninstall the CCC and any other stuff for your video card and sound card first from Add/Remove Programs, then uninstall them from Device Manager.
Boot into Safe Mode. Run DriverSweeper and select the ATI Display Drivers and the Realtek Audio drivers. If it gives an option to get rid of those other sound drivers, do so.
Boot into normal Windows, but cancel any New Hardware Wizards that pop up. Install the drivers for your video card, reboot, cancel new hardware wizards, install audio drivers one at a time, rebooting between each one and cancelling the New Hardware wizards when you boot.
Once you get the drivers installed cleanly, and have updated Windows, post a new CoH Helper log.
It's possible that CoH Helper is having problems due to a .Net Framework issue. It requires .Net 2.0, and seeing that you are running SP1 doesn't leave me much hope that you've done other updates along those lines.
If the game spit out 20 dollar bills people would complain that they weren't sequentially numbered. If they were sequentially numbered people would complain that they weren't random enough.
Black Pebble is my new hero.
Upgrade to at least Service Pack 2, preferably to Service Pack 3. You have some gaping security holes by not being patched up.
|
Also, it looks as if your video driver and audio driver installations are corrupted, which is the reason that the dates are funky. |
Run DriverSweeper and select the ATI Display Drivers and the Realtek Audio drivers. If it gives an option to get rid of those other sound drivers, do so. |
ETA: I've got a full dxdiag.txt, which might be easier than pondering CohHelper's output. Any use?
22050 Hz, minimum quality; 47 average FPS, 12.5 minimum (average over all runs etc). Sounds fairly normal, given that combat is mostly buzzes and thumps anyway. Wonder if I can live with that...
That's not quite as big a problem as you might think; the system's behind a real computer, only exposed to the outside world in specific ways.
dxdiag shows normal dates. A bunch of the information from CohHelper is bogus (as I said, check out the page file information). Why would I not want the drivers for the other audio devices present? ETA: I've got a full dxdiag.txt, which might be easier than pondering CohHelper's output. Any use? |
It's also possible that the lack of updates is what is causing the odd readings in CoH Helper. I suspect it isn't so much that the data from CoH Helper is bogus as you claim, but that the lack of updates is causing erroneous readings.
But no worries, if you don't want to follow the advice I give, I don't need to worry about continuing to give it.
Good luck.
If the game spit out 20 dollar bills people would complain that they weren't sequentially numbered. If they were sequentially numbered people would complain that they weren't random enough.
Black Pebble is my new hero.
Even without the security updates, there are a huge number of other updates included in the Service Packs, and any number of those could be having an impact on the game.
|
So I've bumped the machine to SP2, completely removed all versions of the .NET Framework and reinstalled same, installed every update Windows Update feels the need to press on me, removed the old drivers, rebooted in Safe Mode, run Driver Sweeper, installed fresh drivers (albeit the same version of the sound drivers, them not changing very often)...
... and I'm exactly back where I started, down to the same complaint about the Registry from CoH Helper and 1/1/2001 driver dates, and the same performance issue (whichever of the three sound output devices I use).
I suspect it isn't so much that the data from CoH Helper is bogus as you claim, but that the lack of updates is causing erroneous readings. |
Googling "Coh Helper" "01/01/2001" shows me that this oddity keeps cropping up - mostly folks from the DE and UK boards? I have PMed Zloth to see if they can shed any light on the cause; I think the assumption that it is a corrupt driver is unwise, especially when dxdiag itself shows a normal date for the driver.
[HKEY_CURRENT_USER\Software\Cryptic\EUCOH] |
The date thing could be caused by different date formats. I would trust what your driver itself reports as its version over CoH. (CoH Helper just runs the DXDiag program with XML output then picks the dates out of that.)
P.S. Why would you just go to SP2 when SP3 has been out for something like a year now!?
Well, there's one problem right there. I guess Europe has a different registry entry for whatever reason? Jeez, that will mess up Demo Launcher, too.
|
Is there maybe some service that needs to be turned on? I turn pretty much all of them off. I can reproduce the exact message if that would help?
The date thing could be caused by different date formats. I would trust what your driver itself reports as its version over CoH. (CoH Helper just runs the DXDiag program with XML output then picks the dates out of that.) |
I've just tested this, and whether Windows is set to English (UK) or English (American), dxdiag.xml has dates as mm/dd/yyyy hh:mm:ss.
Oho, but, if I set it to American English, CoH Helper gets the dates right! Maybe there's some "helpful" internationalisation in a library that CoH Helper uses, and it doesn't expect dxdiag's output to use American-style dates on a British English system?
P.S. Why would you just go to SP2 when SP3 has been out for something like a year now!? |
Still plugging away. Fresh XP installation. Upgrade to SP1, SP2, automatic-upgrade to SP3, all the rest of the automatic upgrades. Newest ATI driver (9.11 for my X1950). nforce 3 driver lump 5.11, the last one. Import the entire registry lump for CoH to get exactly the same settings.
Same results. Which is interesting, because it's therefore not something wrong with the old installation, but vexing, because it would be nice if it had worked.
So... anyone do me a favour? Grab http://www.chiark.greenend.org.uk/~d...horter.cohdemo (stick it in client_demos) and run
I:\games\CoX\CityOfHeroes.exe -demoplay shorter.cohdemo -demoloop 4 -demoframestats
obviously with the appropriate path instead of I:\games\CoX. Turn off sound (I mean, set the in-game volume slider to 0%) and try again. Let me know the average and minimum framerates.
Attempt #1 using my regular settings:
Demo: shorter.cohdemo Screen: 1680x1050 (60 Hz) Fullscreen CPU: 4 x 2400 Mhz Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz Memory: 2047 MB Video Card: NVIDIA GeForce 9600 GT Texture: Ultra Shadows: OnPhysics: 5WorldDetail: 2.00 EntityDetail: 2.00 MaxParticles: 50000 ParticleFill: 10.00 Render features: WATER MULTITEX MULTITEX_DUAL HQBUMP MULTITEX_HQBUMP WATER_DEPTH BUMPMAPS BUMPMAPS_WORLD DESATURATE Run Avg Min Max Frames Time 1 58.8 12.1 193.6 1853 31.54 2 59.1 12.1 158.1 1864 31.52 3 59.3 28.5 151.0 1869 31.51 4 59.1 12.1 153.8 1864 31.52 ----- Avg* 59.2 17.6 154.3 1865 31.52 * Note that first run is not used to compute average. |
Demo: shorter.cohdemo Screen: 1680x1050 (60 Hz) Fullscreen CPU: 4 x 2400 Mhz Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz Memory: 2047 MB Video Card: NVIDIA GeForce 9600 GT Texture: Ultra Shadows: OnPhysics: 5WorldDetail: 2.00 EntityDetail: 2.00 MaxParticles: 50000 ParticleFill: 10.00 Render features: WATER MULTITEX MULTITEX_DUAL HQBUMP MULTITEX_HQBUMP WATER_DEPTH BUMPMAPS BUMPMAPS_WORLD DESATURATE Run Avg Min Max Frames Time 1 58.8 19.9 174.8 1856 31.54 2 59.3 28.7 169.3 1870 31.52 3 59.3 29.0 166.7 1870 31.52 4 59.4 28.5 164.8 1871 31.52 ----- Avg* 59.3 28.7 166.9 1870 31.52 * Note that first run is not used to compute average. |
I was switching back and forth to a couple of things while the first attempt was playing, so I ran it again...
Attempt #3 after changing back to my regular sound settings:
Demo: shorter.cohdemo Screen: 1680x1050 (60 Hz) Fullscreen CPU: 4 x 2400 Mhz Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz Memory: 2047 MB Video Card: NVIDIA GeForce 9600 GT Texture: Ultra Shadows: OnPhysics: 5WorldDetail: 2.00 EntityDetail: 2.00 MaxParticles: 50000 ParticleFill: 10.00 Render features: WATER MULTITEX MULTITEX_DUAL HQBUMP MULTITEX_HQBUMP WATER_DEPTH BUMPMAPS BUMPMAPS_WORLD DESATURATE Run Avg Min Max Frames Time 1 58.7 12.0 178.0 1852 31.53 2 59.3 28.3 158.9 1869 31.51 3 59.3 27.9 145.6 1870 31.52 4 59.3 28.4 152.9 1870 31.52 ----- Avg* 59.3 28.2 152.4 1869 31.51 * Note that first run is not used to compute average. |
I dunno. There it is anyway.
Anyone with a slow machine wanna try it - or can you radically underclock your machine somehow?
When I get home next I'm going to use that Perl script to replace chunks of the sound with the reencodes to see what happens...
I don't either (between your runs 2 and 3), but then you have considerably more CPU than I do and my theory is that Ogg decoding itself makes CoH slow - the effect vanishes with sound off and decreases if I reencode the Oggs at 22050 Hz and a lower bitrate.
Anyone with a slow machine wanna try it - or can you radically underclock your machine somehow? When I get home next I'm going to use that Perl script to replace chunks of the sound with the reencodes to see what happens... |
Now, why didn't I think of that?
Sound on; average 13.1, minimum 5.9 (these are all the figures from the bottom row of the chart). Sound off; average 14.8, minimum 6.7.
But the laptop here's a dual-core 2 Ghz - more CPU but less graphics card than my games box.
-renderthread 1, sound off; 16.4 average, 7.5 minimum.
-renderthread 1, sound on; 13.9 average, 5.5 minimum.
The lappie's got a lot of work junk running on it, so I think the figures vary a bit from run to run, but even so - it's overall much slower (and the graphics settings are all at the minimum level), but it's no slower or slightly faster in terms of minimum frame rate _if sound is on_. If sound is off, the games machine is much better.
I hope the answer to this isn't just to figure out exactly what the gruntiest CPU I can fit into my socket 939 motherboard is. I really wish CoX had a "play at most _n_ sounds simultaneously" option.
My results (get ready to really LOL)
Attempt #1 with whatever settings I happen to have on this thing:
Demo: shorter.cohdemo Screen: 1280x800 (60 Hz) Fullscreen CPU: 1 x 1694 Mhz Intel(R) Pentium(R) M processor 1.70GHz Memory: 767 MB Video Card: MOBILITY RADEON 9200 Texture: Low Shadows: OffPhysics: LowWorldDetail: 0.50 EntityDetail: 0.50 MaxParticles: 100 ParticleFill: 10.00 Render features: Run Avg Min Max Frames Time 1 0.0 0.1 0.1 1 34.16 2 18.0 0.4 88.5 556 30.94 3 11.1 1.1 69.8 349 31.53 4 11.2 1.3 37.2 354 31.54 ----- Avg* 13.4 0.9 65.2 419 31.33 * Note that first run is not used to compute average. |
Demo: shorter.cohdemo Screen: 1280x800 (60 Hz) Fullscreen CPU: 1 x 1694 Mhz Intel(R) Pentium(R) M processor 1.70GHz Memory: 767 MB Video Card: MOBILITY RADEON 9200 Texture: Low Shadows: OffPhysics: LowWorldDetail: 0.50 EntityDetail: 0.50 MaxParticles: 100 ParticleFill: 10.00 Render features: Run Avg Min Max Frames Time 1 8.7 0.4 87.5 285 32.79 2 38.0 1.9 74.9 1175 30.94 3 29.2 9.6 46.4 920 31.47 4 29.2 10.3 47.6 919 31.45 ----- Avg* 32.1 7.2 56.3 1004 31.29 * Note that first run is not used to compute average. |
When I get home next I'm going to use that Perl script to replace chunks of the sound with the reencodes to see what happens...
|
Another thing that does not work is putting all the data/sound/Ogg directory on a RAM disc. Yes, I have enough memory that that isn't obviously boneheaded.
Department of trying totally random things: I moved the CoX install from the SCSI drive it was on to the IDE drive. No significant difference observed.