Page 1 of 1

Oblivion FPS bottleneck?

Posted: Sun Sep 01, 2013 11:32 am
by lmstearn
Hi there,
Specs:
AMD FX(tm) 6200 Six-Core Processor, 3800 Mhz, 3 Core(s), 6 Logical Processor(s)
NVIDIA GeForce GTX 650

I have Oblivion hooked on to Process Lasso and OSR and most of the settings run slightly less than Ultra. e.g. ugridsdistantcount = 20

At the time of purchase, I opted for the AMD over Intel because it boasted superior on-board sound, solid performance.

The mystery is that running Oblivion without Qarls, the game positively sings at 50-60 fps everywhere, even at the IC Waterfront & IC Market District, Anvil Flowing Bowl & Dock area. This appears to be the same for resolutions from 1366 X 1768 to 1080p.

Running with Qarls full and some OBGE mods, (No RAEVWD), I only get a jerky 12-15 fps facing NW (even a wall) in main street IC Market District at *any* resolution.

The clutter shouldn't be an issue. 4096 X4096 repeated wall textures shouldn't be a major processing problem.
The AI packages seem to be a major suspect, as removing these (ahem) from the area lifted the base fps to more than 20.

With Oblivion running on one and a bit threads with this graphic load, is the bottleneck the CPU, GPU, or the link between the two?

Re: Oblivion FPS bottleneck?

Posted: Sun Sep 01, 2013 11:35 am
by MARS
My money's on the CPU. Oblivion doesn't support multi-cores and only utilizes one. Your clock speed is pretty high, though, so I'm not entirely sure.

Re: Oblivion FPS bottleneck?

Posted: Mon Sep 02, 2013 7:12 am
by lmstearn
Thanks Mars,
Spoiler:
Active Mods

• 00 Oblivion.esm
• 01 You Are Here.esm
• 02 EnhancedWeather.esm [Version 1.4.4]
• 03 Francesco's Leveled Creatures-Items Mod.esm [Version 5.0]
• 04 Francesco's Optional New Items Add-On.esm [Version 5.0]
• 05 Francesco's Optional New Creatures Add-On.esm [Version 5.0]
• 06 UOP Vampire Aging & Face Fix.esp [Version 1.0.0]
• 07 Oblivion Citadel Door Fix.esp
• 08 DLCShiveringIsles.esp
• 09 Unofficial Shivering Isles Patch.esp [Version 1.5.2]
• ++ USIPS Additional Changes.esp
• 0A Francesco's Creatures and Items Resources.esp [Version 5.0]
• 0B FransCalipersBeGone.esp
• 0C EnhancedWeather.esp [Version 1.4.4]
• 0D Enhanced Weather - Across-The-Borders Mods Patch.esp [Version Final]
• 0E OBGE - Liquid Water.esp
• 0F Sounds of Cyrodiil.esp [Version 1.1]
• 10 AmbientDungeons.esp [Version 1.3]
• 11 300_lore dialogue v1.15.esp
• 12 ClocksOfCyrodiil.esp
• 13 Encyclopaedia Cyrodilica.esp
• 14 Enhanced Seasons.esp [Version 1.3.2]
• 15 HTFpcb Extended.esp
• 16 Streamline 3.1.esp
• 17 Map Marker Overhaul.esp [Version 3.9.3]
• 18 The Bow of Blades.esp
• 19 Francesco's Optional Chance of Stronger Bosses.esp [Version 5.0]
• 1A Francesco's Optional Chance of Stronger Enemies.esp [Version 5.0]
• 1B Francesco's Optional Dungeon Chest Loot.esp [Version 5.0]
• 1C Francesco's Optional Dungeon Chest Locks.esp [Version 5.0]
• 1D Francesco's Optional Leveled Guards.esp [Version 5.0]
• 1E Francesco's Optional House Chest Loot.esp [Version 5.0]
• 1F Francesco's Optional New Adventurers.esp [Version 5.0]
• ++ Francesco's Optional Vendor Tweaks.esp [Version 5.0]
• 20 Francesco's Optional Leveled Quests.esp [Version 5.0]
• 21 Francesco's Optional Leveled Arena.esp [Version 5.0]
• 22 Weapon Expansion Pack for Oblivion Nthusiasts.esp [Version 1.03]
• 23 thermae.esp
• 24 Knights.esp
• 25 Knights - Unofficial Patch.esp [Version 1.1.3]
• 26 Enhanced Vegetation [150%].esp
• 27 1em_Vilja.esp [Version 4.04]
Just to verify, I did uninstall Qarls, and its compatibility patch, and, unbelievably, hardly any change in middle of the IC Market District. 15+ fps

As a point of interest, I performed a multi-select on Qarls, the patch, and the UOP in Wrye Bash, and, to save a long wait for unpack/replace, did a multi uninstall. Oblivion didn't like it, but re-installing the UOP seemed to work out for the test.

Of course, I have now reinstalled the lot separately, just in case, you know.

Bash is king.

Now to make it emperor, all we want is an add-on FPS cop!

Re: Oblivion FPS bottleneck?

Posted: Wed Sep 04, 2013 10:14 am
by Andere
I agree with Mars. Plus, one thing not so often noticed, as everyone usually speak of video, is the sound part. Sound takes a lot of CPU power, and lowering it could help in many issues.

Re: Oblivion FPS bottleneck?

Posted: Fri Sep 06, 2013 10:34 am
by lmstearn
Hmmm, that's a thought:
I actually had iMaxImpactSoundCount=64 with bDSoundHWAcceleration=1, wouldn't you with Symphonic Variations?

The AMD boasts a good, hi-def, stable on-board sound, yet it's probably a good idea, with this games at least, to drop it back down to 32. One of the channels on the amp is a little dodgy (again), so won't miss out on much.
Might have been a 1-2 fps improvement. A 2-3 fps increase (I think) was by disabling the "Sounds Of Cyrodiil" city sounds.

Re: Oblivion FPS bottleneck?

Posted: Fri Sep 06, 2013 12:47 pm
by Moeboid
The problem isn't the graphics card or the processor. Both components could probably max Oblivion four times over. The problem is, as Mars said, that Oblivion will only ever use one core (actually, it uses two, but the second one doesn't do much).

Oblivion is therefore extremely CPU bottlenecked, and only a big overclock on the very latest Intel processors will give you a constant 60fps with all graphics settings maxed.

Getting a sound card might help, but I don't know how much. My guess is that it would be a modest improvement at best. Try disabling sound altogether and see what happens.

Re: Oblivion FPS bottleneck?

Posted: Fri Sep 06, 2013 1:27 pm
by lmstearn
Absolutely,
A new card might be better, but, as you say, probably only a small FPS increase.

Oblivion lives on a single thread, yet it is still alive!

Could it be at all possible that Bethesda would really mind, if, after all these years, a bunch of programmers got together and decompile this Oblivion.exe and give us a decent OpenMP overhaul?

How many Waits and Timer loops does it have anyway?
Put it on the table as an update, DLC, new release, anything- I would rather pay for something that's going to run smoothly rather than wreck one's rig and overrun the power bill.

The similarity with Fallout 3 ends with that game getting a better hyperthreading interface *and* support from NVIDIA.

Re: Oblivion FPS bottleneck?

Posted: Sun Sep 08, 2013 10:47 am
by Andere
lmstearn wrote:Could it be at all possible that Bethesda would really mind, if, after all these years, a bunch of programmers got together and decompile this Oblivion.exe and give us a decent OpenMP overhaul?
I doubt that.

I just remembered, many have had their Oblivion play better by disabling / locking extra cores. It's the opposite to unlocking cores. Depends on your motherboard if you can do it from the BIOS. Not sure if you can try it from AMD Overdrive - AMD site was in service, can't give the link, sorry.

Re: Oblivion FPS bottleneck?

Posted: Mon Sep 09, 2013 1:10 pm
by lmstearn
I doubt that
Yep: shall repost to an Oblivion_Wish-list echo

From the Process Lasso config:
DefaultPriorities=oblivion.exe,high
DefaultIOPriorities=oblivion.exe,3
DefaultAffinities=oblivion.exe,2;4

Cores 2 & 4 are the "physical" or non hyperthreaded cores.
It also has some CPU throttle capabilities grading from 1 to 5 in strength, all of which are not recommended by them.
Dare I touch?


Doing the excellent test with bDoTexturePass=0 or bFullBrightLighting=1, gets the same FPS as before
bForceMultiPass=0 is interesting.

Fiddled with OSR settings:
Spoiler:
Master = {
bManageFPS = 1
bHookCriticalSections = 1
bHookHashtables = 1
bReplaceHeap = 1
bLogToConsole = 0
bFix64Hertz = 1
bExtraProfiling = 0
bFlushLog = 1
iSchedulingResolution = 1
bReplaceRandom = 1
bExperimentalStuff = 1
iMainHookPoint = 1
}
Experimental = {
iReduceLongSleep = 1
bRemoveShortSleep = 0
iThreadsFixedToCPUs = 2
bSuppressRandomSeeding = 0
bMonitorBSShaderAccumulator = 0
iPrintSceneGraphDepth = 0
bReplaceRandomWrappers = 1
bBenchmarkHeap = 0
bAlternate64HertzFix = 0
bAlternateHeapHooks = 0
iHeapMainBlockAddress = 0
}
FPS_Management = {
bAllowSlowMotion = 0
MaximumFPS = 38
MinimumFPS = 15
iSmoothFrames = 0
iSmoothMode = 0
iSleepExtra = 2
iFPS_Frequency = 30000
iSchedulingParanoia = 1
iHardMaxFrametime = 200
}
CriticalSections = {
bEnableProfiling = 0
bEnableMessages = 1
bUseOverrides = 1
iDefaultMode = 3
iDefaultSpin = 2000
iStaggerLevel = 3
}
Heap = { iHeapAlgorithm = 6
bEnableProfiling = 0
iHeapSize = 1024
bEnableMessages = 0
iGenericFreeDelay = 0
bZeroAllocations = 0
}
Hashtables = {
bAllowDynamicResizing = 0
bUseOverrides = 1
bEnableProfiling = 0
bEnableMessages = 0
bEnableExtraMessages = 0
iHashtableResizeScale1 = 2
iHashtableResizeScale2 = 4
iHashtableResizeDelay = 20
}
Override/Critical Sections/Hashtable stuff...
ballowslowmotion=0 provides more info as to the pattern of FPS variability. It appears to drop significantly (even to below 10) on load of busy exterior cells (e.g. Anvil, IC), but does improve after 3-4 secs. And when running through heavily textured and or populated areas, it can briefly drop to as much as 12.


If running within the same cell, or through "typical" terrain, it's usually 20+.

It's obviously some kind of disk-read bottleneck. Ugridstoload>5 might cure it, but for the bugs.
Spoiler:
[General]
uInterior Cell Buffer=6
uExterior Cell Buffer=72
iPreloadSizeLimit=157286400
bUseHardDriveCache=1

[BackgroundLoad]
iBackgroundLoadLoading=1
bBackgroundLoadLipFiles=1
bLoadBackgroundFaceGen=1
bUseMultiThreadedFaceGen=1
bBackgroundCellLoads=1
bLoadHelmetsInBackground=1
iAnimationClonePerLoop=5
bSelectivePurgeUnusedOnFastTravel=0
bUseMultiThreadedTrees=1
iPostProcessMillisecondsEditor=50
iPostProcessMillisecondsLoadingQueuedPriority=10
iPostProcessMilliseconds=5
bUseBackgroundFileLoader=1
An SSD might help here: any HW recommendations?

Also at the NVCP, anisotropic sample optimization was turned on.

Is OBGE3.1 an FPS vampire?
Spoiler:
Running
MDLAA.fx (the only AA running for the game)
Water.fx
POM
LHDR

OBGE.ini:

[DepthBuffer]
bUseDepthBuffer=1
bUseRAWZfix=1
[Effects]
bUseEffectList=1
sEffectDirectory=data\shaders\
sEffectListFile=data\shaders\shaderlist.txt
bUseLegacyCompiler=0
bCompileSources=1
bOptimize=1
bFreezeTweaks=1
bRenderHalfScreen=0
bPurgeOnNewGame=0
bNoShadersInMenus=0
bTailEffects=0
[ScreenBuffers]
iBufferTexturesNumBits=0
iBufferRawZDepthNumBits=0
iReflectionMapSize=0.0
iWaterHeightMapSize=0
iWaterDisplacementMapSize=0
iAutoGenerateMipMaps=2
iBufferZDepthNumBits=0
[General]
bEnabled=1
bEnabledLOD=0
bEnableLOD=0
[LOD]
iFarNearTiles=5
iFarFarTiles=7
iFarInfTiles=11
[Meshes]
bPurgeOnNewGame=1
[Serialization]
bSaveData=1
bLoadData=1
[PluginInterOp]
bEnableInterOp=0
[Shaders]
bUseShaderOverride=1
bUseLegacyCompiler=0
bSaveShaderOverride=1
bCompileSources=1
bRuntimeSources=1
bOptimize=1
bMaximumSM=1
bUpgradeSM1X=0
sShaderOverrideDirectory=data\shaders\override\
[Textures]
bPurgeOnNewGame=0
bSamplerDeGamma=0
bSamplerReGamma=0
iSamplerAnisotropy=0
fSamplerLODBias=0