Jump to content

Several NPCs drain FPS


Recommended Posts

Hi all,

i read some discussions about this problem, but I didn't find a good solution.

 

FPS drops drastically entering areas with several NPCs (indoor or outdoor), six/seven or more. I made a carefully analysis and I saw that my CPU is at 60-70% (on both cores - "normally" the same) and my GPU (while "normally" is at 90-99%) goes at 30-40%, FPS (normally 20/50), gets down at 10-12, so Oblivion "reduces the speed".

I tried to place 20 NPCs in the testing all without AI and standing up (like static meshes). NO PROBLEM (FPS 50). So it seems this is not a "graphic" problem.

It's seems that Oblivion is "busy" to manage the actors' AI, or something similar, but this produces something like a "lag", not a CPU overload. It seems a hard-coded "sleep". The problem persists even if i turn the camera out of the NPCs, but i am in the same cell (a test that confirms no graphic problems).

 

I think that this is a common problem on slow machines and fast ones. Is there a patch to fix this?

Link to comment
Share on other sites

To be honest this is a bit above my "pay scale", but from my understanding there are limitations with the game and concurrent AI packages (I see it myself in some of my modded houses that have a number of NPCs with AI packages firing when I first step in the door and give my Ricky Recardo impression).

 

What I picked up from posts long ago by guys like Hickory and more recently by Lanceor is that there are two ways to work the problem. One is something in Wrye Bash (this was Hickory's solution) and Lanceor's way is with his Combat FPS Booster. I've never tried either in my own game as when I run into it isn't in combat (Lanceor's solution) and I'm still a non-Wrye Bash user (perpetually on my "to do" list). I can't say for certain whether the WB solution also works for out of combat situations or not ... if memory serves I believe that Hickory's replies on the subject were always related to combat type situations though (usually related to all the extra combatants from MMM or OOO I think).

 

For a comparison for you, I run an Intel Core2 Duo 3.0 GHz at stock in an nVidia 680i SLI motherboard 2 GB 800 MHz RAM that is currently coupled with a 9800 GT with 512 MB GDDR3 (started life with a pair of 8800 GTS cards in SLI but they died one by one). Game and OS run off their own separate RAID 0's using WD Raptors (WinXP Pro 32 bit). Because I run XP I haven't made the jump to SSDs, so hard drives are still my biggest bottleneck (I can always tell when a mod that comes with a big BSA loads it's assets). My specialty has always been building machines that are one step back from the bleeding edge and one step from obsolescence. Call me Mr Cheapskate, so my expectations are lower than some folks.

 

- Edit - First time as far as I can recall that I've heard of OblivionScriptOptimization. From what I read in the description it sounds interesting.

 

- Edit 2 - Had a read through the mod comments for OSO and I must say I'm impressed enough to give it a try. It's truly refreshing to find a mod that says you need to load it immediately after the ESMs, before all other ESPs ... most insist on being very last, ergo as there's only one true last spot you could only use one mod (just being facetious). Note the link to the SI version if you use Shivering Isles (see post #90 by TheRomans).

Edited by Striker879
Link to comment
Share on other sites

@legotrash: i'm sure that my installed mods are ok, because i wrote a part of them and i modified and optimized all the other mods. However, i try to view these links to understand if it's necessary optimizing also the original bethesda scripts. Thank you.

 

@striker: mmmm....interesting....it seems that bethesda knows this problem and provided that "setsceneiscomplex" command. So it can be a cpu problem; probably the cpu is not overloaded but it's busy enough to be not able to prerender frames for the gpu, and the gpu doesn't run at the top. I try if this work, then i will provide a new "automatic" mod that changes the flag on the fly checking the number of npc and the frame rate. Thanks.

Link to comment
Share on other sites

I upgraded my rig (mobo, proc, memory); this not for Oblivion but in general to have a better pc.

  • Processor
    Intel i5 4570 3.2GHz
  • Memory
    Corsair 8 GB 2.4GHz
  • Motherboard
    MSI Z87-G43 GAMING + Kingston HyperX SSD
  • Graphics Card:
    NVIDIA GTX 560 Ti 1GB + ZALMAN 3D
  • Soundcard
    Realtek HD Boost Audio

I set Oblivion to use all core (now 4) and changed the ini parameters to have better performance and better graphics on the new pc.

So i test again. Now the CPU works at 30-60% on all core (FPS in general now 50 FPS) and when I have several NPCs the FPS gets down to 20, the GPU stays at 30% and CPU at the same values (30%-60%) (obviously this does not happen with other games such as The Witcher 2 - 40 FPS everywhere at max details with GPU at 90-99%, CPU at 40%-50%).

 

I tried to use the Lanceor's mod. Nothing changes. I think that this an Oblivion limitation; the problem seems to be the Oblivion's code when getting idles times for threads.

Every thread needs to be placed in "idle" for some milliseconds while developing a multi-thread application to avoid wasting CPU (for example a "sleep" command is placed at the end of the code in the thread; something like Sleep(10) is and idle of 10 milliseconds). I think that this is the limit. The "idle" is too long on a modern rig. I don't know if it is hard-coded and it cannot be changed. I will try to verify if it is possibile to manage something by the OSR or by this parameters in Oblivion.ini that sounds like the "idle" between an execution and other one:

 

iPostProcessMillisecondsEditor=50
iPostProcessMillisecondsLoadingQueuedPriority=20
iPostProcessMilliseconds=10

 

Do you know something about that parameters?

Link to comment
Share on other sites

Nothing changes after several test, changing values in OSR, in Oblivion.ini etc.....

I have a new update: i see this problem happens also in general with several objects on the point of view. Oblivion engine is not able to manage several objects on the screen (not for CPU or GPU limitation).

 

I think there is no solution.

Link to comment
Share on other sites

I can't help but think that it's still possible that it's a graphic's problem. Let me ask: In exteriors with no other actors do you still get low FPS? If yes,have you installed any high textures such as Quarl's? (sp?)

Link to comment
Share on other sites

Yes. The frame rate stays at 30-40 also in exterior but the gpu works at 60%. Oblivion is not able to use my pc at full speed. I haven't high texture like quarl's texture pack 3. The texture mods are the grass overhaul (texture for near terrain) and landscape texture lod. Sure i have several mods, but no conflicts and the mods are all ok.

I can tell you that i have raevwd and distant object count to 50 and tree distant count to 25. If i lower the values the fps raises up and the gpu use raises up also. This is the strange thing. The gpu for definition is a process unit that works always at max speed on 3d apps, but oblivion doesn't fire it up at full speed. More objects on the screen, lower gpu use.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...