Jump to content

Quad cores


MikeHibs

Recommended Posts

I have a 3GHz Quad Core and i am trying to get some of my games to take advantage of all or most of them.

 

I know it depends on how a game is programed, but i'm wondering if it is possible to make Oblivion take advantage of having a quad core CPU.

 

Does anyone know?

Link to comment
Share on other sites

Unfortunately, Oblivion is natively a single-core application with very bad support for multiple cores.

 

There is a mod for Oblivion called Oblivion Stutter Remover (there is a link to it in the website in my signature) which improves performance and tries to make Oblivion use multiple cores. Other than that, there isn't really anything else you can do to make Oblivion use multiple cores.

 

Some users use a program called Prio to assign Oblivion to using the 3rd and 4th core of the CPU only to improve performance. This only works though because Oblivion's processing tasks are being assigned to only the 3rd and 4th core of the CPU, which is not used as much as the 1st and 2nd cores, so there is more processing power available to Oblivion's application than if it was stuck in the 1st and 2nd cores.

Link to comment
Share on other sites

Multithreading Tweaks:

 

bUseThreadedBlood=1

 

bUseThreadedMorpher=1

 

bUseThreadedTempEffects=1

 

bUseThreadedParticleSystem=1

 

bUseMultiThreadedTrees=1

 

bUseMultiThreadedFaceGen=1

 

iNumHavokThreads=5

 

iThreads=9

 

iOpenMPLevel=10

 

All of the above settings seem to relate to the use of the GameBryo engine's multithreading capability. Multithreading splits tasks into 'threads' where possible, and runs them in parallel across both cores of multi core or HyperThreading (virtual multi core) CPUs to improve performance. Note that raising the values of the iThreads, iNumHavokThreads and iOpenMPLevel settings very high doesn't automatically mean it uses that many threads - it all depends on how many threads are actually possible based on the information being processed. Experiment with these variables but if you experience problems reset them back to their defaults.

 

These can help a little bit, noticed a bit of jump when I went from a single to a dual core and used these tweaks :)

Link to comment
Share on other sites

I asked about those tweaks on the bethsoft Forum once. This is the reply I got from IanPatt (one of the developers of OBSE):

* bUseThreadedBlood - Does nothing. Isn't even read by the runtime.

* bUseThreadedMorpher - Is read by the runtime, but isn't used for anything.

* bUseThreadedTempEffects - Is read by the runtime, but isn't used for anything.

* bUseThreadedParticleSystem - Is read by the runtime, but isn't used for anything.

* bUseMultiThreadedTrees - Is read by the runtime, but isn't used for anything.

* bUseMultiThreadedFaceGen - Appears to do something. (probably generation of head meshes for NPCs in the background, as well as remorphing when people start wearing helmets)

* iNumHavokThreads - Is passed to Havok and probably does what it sounds like.

* iThreads - Is read by the runtime, but isn't used for anything.

* iOpenMPLevel - Is read by the runtime, but isn't used for anything.

 

I would bet that these .ini options are either 360-only, or completely unused. The game does use some threads when loading objects and setting them up in the scenegraph, which you can see in one of the debug text modes (current BSTask count).

Link to comment
Share on other sites

They actually works in Oblivion, they do too in Fallout 3 but create severe instability. Was found that changing

 

bUseThreadedAI=0 to 1 and "including" the line

 

iNumHWThreads=2 indeed limits the usage of cores to that number (2 seems to work nice for most while 3 or 4 leads to instabilities)

 

Since Oblivon.ini does not have these 2 lines it should be attempted in cases the game becomes unstable (albeit I never had troubles setting the multithreading in Oblivion). The worse is the engine ignoring the lines.

 

PS: The lines above goes under the "[General]" section.

Link to comment
Share on other sites

@Nosisab

Where did you find this information? I haven't even seen this on Tweakguides.com. Can you also confirm whether these two tweaks actually have any effect on the game (other than iNumHWThreads affecting stability)?

Link to comment
Share on other sites

@Nosisab

Where did you find this information? I haven't even seen this on Tweakguides.com. Can you also confirm whether these two tweaks actually have any effect on the game (other than iNumHWThreads affecting stability)?

you spoke the source Tweakguides.com, but is the "in game experience" which dictates they did work for me.

 

PS: keep a performance monitor in background able to record over time and verify by yourself. Yet the difference is clearly perceivable mainly in those demanding places.

 

Notice the two lines used in Fallout 3 was placed only as an attempt since they do not initially exist at Oblivion.ini and I can't grant they will be recognized, if not they will be ignored.

 

PS notice: Those two lines must not be used if the game works fine, the second physically limits the # of cores used (notice too some Intel CPUs are able to deliver two hardware threads per core while AMD just one, limiting them to a max of 4 grant the engine will not attempt more than it and, at least in Fallout 3 the game becomes unstable even with that number)

 

Edit: Sorry, only now I understand your question: Appending the two lines are not mentioned elsewhere I know, it's a cross reference from me based in a similar engine known workaround, something to be attempted only in case of severe instability and reported if works or not.

Link to comment
Share on other sites

Multithreading Tweaks:

 

bUseThreadedBlood=1

 

bUseThreadedMorpher=1

 

bUseThreadedTempEffects=1

 

bUseThreadedParticleSystem=1

 

bUseMultiThreadedTrees=1

 

bUseMultiThreadedFaceGen=1

 

iNumHavokThreads=5

 

iThreads=9

 

iOpenMPLevel=10

 

All of the above settings seem to relate to the use of the GameBryo engine's multithreading capability. Multithreading splits tasks into 'threads' where possible, and runs them in parallel across both cores of multi core or HyperThreading (virtual multi core) CPUs to improve performance. Note that raising the values of the iThreads, iNumHavokThreads and iOpenMPLevel settings very high doesn't automatically mean it uses that many threads - it all depends on how many threads are actually possible based on the information being processed. Experiment with these variables but if you experience problems reset them back to their defaults.

 

These can help a little bit, noticed a bit of jump when I went from a single to a dual core and used these tweaks :)

Okay, i will try these. :thanks:

 

The only question i have is that wouldn't the iNumHavokThreads=5 and iThreads=9 values be limited by the number of cores you have?

Or am i missing something?

Link to comment
Share on other sites

The Tweakguides page does say: Note that raising the values of the iThreads, iNumHavokThreads and iOpenMPLevel settings very high doesn't automatically mean it uses that many threads - it all depends on how many threads are actually possible based on the information being processed. So if these tweaks even work then yes, the number of threads that can be used are limited by the number of threads that are avalable.

 

Also don't forget about Oblivion Stutter Remover. It improves Oblivion's ability to multi-thread.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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