before you configure check if virtual mode is preselected by the os for oblivion.exe. if so try this setting and compare it to cpu core based affinity setting first.
you will definitely see a huge difference if you own a capable cpu with smt and if you encounter stutter due to cpu thread related bottleneck combined with a demanding ultra game setting in areas where framerate drops or game stutters.
q: why two cores and assigning core affinity with processhacker? a: many games and programs (dx11 and lower) place their primary tasks in the first cores area. you can monitor this with task manager. almost always one or two primary game threads are doing the highest workload. you can also test other settings dependent on the number of cores available. very important is using processhacker is to assign non game tasks to the two excluded virtual cores so they cannot interfere with game tasks (stutter). this is the core affinity setting. if you did this consequently and use the permanent save option you will encounter much smoother gameplay regardless of the (configured) game you play if you configured the correct tasks for all cores and processhacker runs in the backround also assigned to the two spared cores.
you will definitely encounter a difference if you own a capable cpu with smt. the reason why this works is that standard task interference with game tasks is reduced and some sse / fallout 4 graphics related tasks have to be prepared as a single cpu task (dx11 limitation) to feed gpu regardless how many logical cores your cpu provide. if this cpu task is not fast enough you will encounter stutter while gpu is not fully utilized. the only way to reduce this bottleneck is to give such a task as much single core priority as possible. this means: 1. the higher the single core ipc is the lower the chance of cpu bottleneck 2. the higher the single core priority for the most important fo4/sse task is, feeding the gpu with draw calls, the lesser the chance of micro stutter is! 3. separating primary software game tasks from other game load by disabling one of the two logical cpu cores means full cpu core power for the primarily used virtual cores is a game changer!
the draw call problem i described in my skyrim tutorial is also valid for oblivion. if you encounter fps drops in a dense area and your gpu runs with 30% and lower you encounter most probably the dx9 draw call bottleneck.
if you own an amd ryzen 5xxx cpu i recommend to read this to optimize your cpu for efficiency and gaming in BIOS. the difference before after can be amazing. i tested this and my cpu works much cooler, faster and less noisy compared to other ways of optimizing. i used the curve optimizer to undervolt my cpu stable with the maximum value (30 as negative value, should be the same for most BIOS). the higher the number of cores the lower the chance that this lowest setting will work stable. just use precision boost and curve optimizer as described and raise the value to -10 to -29 if you encounter any instabilty during testing! this is because of cpu voltage lottery.
Setting the affinity every time you start the game forces you to play in windowed mode so you can alt-tab to get to Process Hacker -- and you don't ever want to be alt-tabbing out of Oblivion, since that can easily cause memory problems & crashes. So this hack isn't really practical as is. The only way to make the affinity setting permanent is to get into some semi-complex stuff, with a batch file made using a binary to hexidecimal converter, to automatically set the affinity every time you start the game. I don't think most people are gonna want to get into that, but it *is* possible to do, and necessary to avoid alt-tabbing.
you can set affinity and many other settings permanently with processhacker. please read my guide. don't use older versions prior 3.0 alpha. they do not include this function. if you use the right version right click the fallout task and click affinity and you will see the option tab to save your affinity settings permanently. there is no need to set the option again until you want to change the settings.
i have i7 7700. i have 4/8 threads. for the ini file "iNumHWThreads=xx" should i write iNumHWThreads=x6 (i disabled 2 of the cores) i mean leave that x (i dont know what to type for the x)
no, the x for the ini file "iNumHWThreads=xx" stands for the number of logical cores the game engine should assign to the game.exe. in your case a maximum of 8. your ini should look like this: iNumHWThreads=8 (all available logical cores). the affinity setting in processhacker manipulates the logical cores from the OS perspective. you assign logical cores resources from the OS to the game.exe (or any other process.exe).
alongside the typical dead-end tweaks for shader model 3 + SM2 .ini parameters (i dont think they ever worked, perhaps not worth mentioning)
and following this guide, it seemed to hardcap my framerate to 30 in CPU-bound cases (usually witness a fluctuation of 5fps with large NPC gatherings) the stuttering was insane, i usually experience, again, a fluctuation in framerate, barely noticable, in stark contrast to cliff drops into 30fps combined with the game freezing for 500-1500ms when passing cell borders (app to log process hangs, how long it hung for)
i had oddities like LODHead causing stutter when swapping facegen > LOD.
following your tut to the T, i gotta ask, do these tweaks really work for you? I'm honestly assuming placebo, or these settings never really took effect, otherwise i believe i would have similar results to your findings
nice effort either way, im going to keep trying to see if i can alleviate some of the issues (disabling OR,ODT,OSR no avail)
it should work flawlessly with win 7 and 10 64 bit. my described settings for the mod are game independent. it will work for all sorts of programs in a win OS since win 7. many oblivion ini settings settings are truly placebo or even slow down the game. but all these problems are related to your individual game settings or misconfigured enb or other plugins, i can assure you, some are related to game engine and dx9 draw call limitation since oblivion can use only one cpu thread and does an old fashioned and slow sort of rendering. this is an interface limitation and you cannot solve it with some programming tricks. even a wrapper like dxvk is limited by the old gamebryo engine. so you need a cpu with high single core ipc and a fast nvidia gpu with well optimized drivers for older dx9 and dx11 games. alder lake or ryzen 5xxxx should be good (i assume you do not only play old dx9 games). you should exchange your I7-3770k. the single core ipc is low (30% and more loss) compared to do a modern cpu - even overclocked. this means 30% lower frames in a single core dependent and limited game, regardless of the gpu. and we do not talk about memory... i use OR 6.5, obse, the good old mo1 - developped by tannin - as mod manager and have no problems the last 6 years with different OS. but i do not use any of the memory or stutter related OR features. i use it for water, shadow and terrain only. other settings do not work well for me and i cannot recommend them. i recommend to do your tests on a neutrally configured game and you will experience the difference described. enb and or and some ini settings can be problematic for performance or can even destroy it especially combined, if you do not exactly know what you do. i do not use any fps limiter apart from the game built in 60fps limit and my game runs most of the time at this limit. some drops while passing a new cell - that's it most of the time.
and most of the "multithreaded" ini settings do not work at all, read this. i can confirm that. apart from the multithreaded havok setting and one or two background settings nothing worked and even can make things worse.
that is correct i deleted this accidentally from skyrim copied part. forget about it in oblivion. i use it in sykrim and fallout 4. for oblivion it is: iPostProcessMillisecondsLoadingQueuedPriority=100 iPostProcessMilliseconds=25 it may work or not depending on your hw and the values.
it does not really matter because 90% use win10 but i tested on win 10 64bit 32 GB amd CPU (5600x) and nvidia GPU. i use this since setup win 7 with older dx 9 games and it always worked at least for me. it is in my opinion a no brainer for multicore with activated smt/hyperthreading. only exotic machines with special power settings or inability to handle smt (like amd bulldozer cpu) are a problem. it does not work for cpu not supporting smt like i5 i9600 or i 8600. you should use a multicore and smt supporting win os. i can not speak for win 11 and maybe some still existing os gliches do exist. alder lake may have porblems ? let me know. thanks!
I shall try it, thanks. But my setup is nothing like yours: it's win10, but an Intel CPU "Core-i3", only 4GB RAM and a low end NVIDIA 720. This PC is 15 years old. But then again, Oblivion too is 15 years old. We'll see.
be aware, if your i3 does does not already supports hyperthreading/smt my solution can not work as intended and described. many of the older i3 and i5 cpu do not. they do not have physical cores splitted into two logical cores. read my description and recommendations. an i7 7700k (4/8 cores) should be the minimum cpu as the source if we talk about serious gains like lesser stutter to expect. you can not expect anything from a system that is barely able to fulfill minimum requirements for a seriously modded game with high res textures and so on. and the fastest cpu can not save you if the gpu is too slow or a cpu built in one.
I never said my PC could not cope. And I won't blame you if there is no improvement. Especially since I have no stutter to begin with, except when there are more then ten NPCs in a fight, all trying to be clever (scene is not set to complex). It is these exceptional situations that I might want to address. And yes, my game is heavily modded, and yet I survive. You have to choose your mods wisely. Not using OSR, ENB or anything like that so far, so I thought I'd try your suggestion. As for whether my CPU has those capabilities - I have no idea! I have 4 cores reported by the task manager, and whenever a single threaded application goes on full tilt, it reports 26% CPU usage. So if your method can raise this percentage for me, that would be great, if not, it's not your fault, do not worry. Thanks for looking into it! It will help some people, I'm sure.
if you tell me the exact name of your cpu i can tell you if my mod works for you or not. the only relevant question is if it is ht/smt capable or not. if not you can omit my mod and save time ;) if your cpu shows only 4 cores in windows the optimization can not work. if you have 4 physical cores it will not work at all and if your cpu has 2 physical and 4 logical cores it is too weak for an improvement. do not waste your time with a cpu with less than 8 logical cores shown in windows. this is the minimum required.
I see - thanks! This is exactly the kind of info I was looking for. The CPU is called Intel Core i3-2120 @ 3.30GHz. But if you say it hasn't got the right properties, then it's enough for me to look elsewhere.
the i3-2120 has 2 phyical cores and 4 logical cores. and 3.3 Ghz and sandy bridge layout. ok to play oblivion with a few mods nicely depending a bit on the graphics card but bottlenecked by the cpu. my mod may work to a degree but i doubt it will bring you significant changes. the cpu will introduce some stutter with higher res, many scripted mods and high quality settings. you most probably will encounter some stutter or fps drops. if you know the elsweyr anequina mod and the city corinthe you know what i mean. the market place even stutters with high end hw. many modern games would not even start with this cpu. if you like to further optimize and to mod i recommend to update your hardware first. to queeze the most out of this cpu try some overclock and you will gain best possible results for oblivion.
Thanks! I have 166 mods at the moment. I would not call it "lightly modded". I have the entire Tamriel in game. Of course geographic mods don't make much difference to the CPU, and all graphics processing that can be done by the video card, is forced to the video card (NVIDIA has options for that). But I also have additional NPCs and AI with travellers and crowded cities and whatnot. No issues. Graphical settings? Maxed out or nearly so on most things, in particular LOD, because that really changes perception. Large texture size, but vanilla and not HD (I saw almost no difference). Shadows and reflections enabled. Bloom, not HDR. Resolution 1600x900 on a double resolution screen and let the screen do anti-aliasing - not the CPU, not the graphics card but the screen (Toshiba smart TV). This is the trick. Beautiful graphics and no stutter at all unless we get into a really big fight which is rare. I don't care for modern games, I've got consoles for that! Like I said, you have to choose your mods wisely. A single mod that makes 10 adoring fans follow you around would bring everything down.
19 comments
if so try this setting and compare it to cpu core based affinity setting first.
you will definitely see a huge difference if you own a capable cpu with smt and if you encounter stutter due to cpu thread related bottleneck combined with a demanding ultra game setting in areas where framerate drops or game stutters.
q: why two cores and assigning core affinity with processhacker?
a: many games and programs (dx11 and lower) place their primary tasks in the first cores area. you can monitor this with task manager. almost
always one or two primary game threads are doing the highest workload. you can also test other settings dependent on the number of cores available. very important is using processhacker is to assign non game tasks to the two excluded virtual cores so they cannot interfere with game tasks (stutter). this is the core affinity setting. if you did this consequently and use the permanent save option you will encounter much smoother gameplay regardless of the (configured) game you play if you configured the correct tasks for all cores and processhacker runs in the backround also assigned to the two spared cores.
you will definitely encounter a difference if you own a capable cpu with smt. the reason why this works is that standard task interference with game
tasks is reduced and some sse / fallout 4 graphics related tasks have to be prepared as a single cpu task (dx11 limitation) to feed gpu
regardless how many logical cores your cpu provide. if this cpu task is not fast enough you will encounter stutter while gpu is not fully
utilized. the only way to reduce this bottleneck is to give such a task as much single core priority as possible.
this means:
1. the higher the single core ipc is the lower the chance of cpu bottleneck
2. the higher the single core priority for the most important fo4/sse task is, feeding the gpu with draw calls, the lesser the chance of micro
stutter is!
3. separating primary software game tasks from other game load by disabling one of the two logical cpu cores means full cpu core
power for the primarily used virtual cores is a game changer!
the draw call problem i described in my skyrim tutorial is also valid for oblivion. if you encounter fps drops in a dense area and your gpu runs with 30% and lower you encounter most probably the dx9 draw call bottleneck.
if you own an amd ryzen 5xxx cpu i recommend to read this to optimize your cpu for efficiency and gaming in BIOS. the difference before after can be amazing. i tested this and my cpu works much cooler, faster and less noisy compared to other ways of optimizing. i used the curve optimizer to undervolt my cpu stable with the maximum value (30 as negative value, should be the same for most BIOS). the higher the number of cores the lower the chance that this lowest setting will work stable. just use precision boost and curve optimizer as described and raise the value to -10 to -29 if you encounter any instabilty during testing! this is because of cpu voltage lottery.
the affinity setting in processhacker manipulates the logical cores from the OS perspective. you assign logical cores resources from the OS to the game.exe (or any other process.exe).
alongside the typical dead-end tweaks for shader model 3 + SM2 .ini parameters (i dont think they ever worked, perhaps not worth mentioning)
and following this guide, it seemed to hardcap my framerate to 30 in CPU-bound cases (usually witness a fluctuation of 5fps with large NPC gatherings)
the stuttering was insane, i usually experience, again, a fluctuation in framerate, barely noticable, in stark contrast to cliff drops into 30fps combined with the game freezing for 500-1500ms when passing cell borders (app to log process hangs, how long it hung for)
i had oddities like LODHead causing stutter when swapping facegen > LOD.
following your tut to the T, i gotta ask, do these tweaks really work for you? I'm honestly assuming placebo, or these settings never really took effect, otherwise i believe i would have similar results to your findings
nice effort either way, im going to keep trying to see if i can alleviate some of the issues (disabling OR,ODT,OSR no avail)
i use OR 6.5, obse, the good old mo1 - developped by tannin - as mod manager and have no problems the last 6 years with different OS. but i do not use any of the memory or stutter related OR features. i use it for water, shadow and terrain only. other settings do not work well for me and i cannot recommend them. i recommend to do your tests on a neutrally configured game and you will experience the difference described. enb and or and some ini settings can be problematic for performance or can even destroy it especially combined, if you do not exactly know what you do. i do not use any fps limiter apart from the game built in 60fps limit and my game runs most of the time at this limit. some drops while passing a new cell - that's it most of the time.
and most of the "multithreaded" ini settings do not work at all, read this.
i can confirm that. apart from the multithreaded havok setting and one or two background settings nothing worked and even can make things worse.
yes i have noticed some of the threading/background loading parameters cause horrible bugs when disabled
someone really needs to compile the latest knowledge into a quick reference guide, you make me wonder how many erroneous tweaks ive made
for oblivion it is:
iPostProcessMillisecondsLoadingQueuedPriority=100
iPostProcessMilliseconds=25
it may work or not depending on your hw and the values.
many modern games would not even start with this cpu. if you like to further optimize and to mod i recommend to update your hardware first. to queeze the most out of this cpu try some overclock and you will gain best possible results for oblivion.
Thanks for the info on the CPU!