Jump to content

Is there a way to use heap size bigger than 1024?


Dwalin2012

Recommended Posts

@malautomedonte:


Keep in mind Better cities, Unique landscapes and distant VWD LOD are among the most notoriously taxing culprits on fps/stutter.


To narrow it down. I would temporarily disable distantLOD all together

(just to see if that fixes your problem), than gradually re-add some portions

(starting with core, then Ayleid ruins, and so on).


I'm sure along these boards you could find some topics to read on the subject for insight into which Landscapes are the most taxing. You should look into that.


Then you could try (temporarily) disabling some of the unique landscapes and see if you gain profit?


I would wager your culprit would be in the mods above

and not so much further tweaking OSR nor as a Windows-user start meddling with dxvk

(quite the stellar performance gains in Oblivion with Vulkan seems mainly for Linux-land).

Link to comment
Share on other sites

Hey! Yes, those are the biggest offenders when it comes to cell-loading related stuttering, and I have all three of them hehe!

I am pretty sure that RAEVWD is causing that, I installed almost every package and unfortunately it is something the old Gamebryo can't manage, let alone every UL mod, the village mods from Arthmoor, those nice 2k-4k textures and so on... My load list is pretty big and I think I have reached the limit. I am having around 30-40 fps @2k but when the engine loads and unloads cells I go down around 20-22 for about 3-5 seconds, before the framerate stabilizes again and distant objects appear on screen one more time. Doing some tweaks through osr and enboost reduced the loading times and they are somehow acceptable, but I think I'll have to give up on some other options to get a better framerate, even if I own a 4.5GHz 6700K. Getting stuttering during a fight for instance is something I'd like to avoid altogether.

Edited by malautomedonte
Link to comment
Share on other sites

Oh yeah, by deleting the distantLOD folder created by tes4lodgen, hence without any extra distant object rendered, I am getting 15-20 fps more, and the stuttering is almost completely gone. I think I have to remove some of those goodies, even if I'd like not.

Edited by malautomedonte
Link to comment
Share on other sites

Oh yeah, by deleting the distantLOD folder created by tes4lodgen, hence without any extra distant object rendered, I am getting 15-20 fps more, and the stuttering is almost completely gone. I think I have to remove some of those goodies, even if I'd like not.

Hey @malautomedonte,
Besides have critical look of the Unique Landscapes and what parts you want to keep.
I would recommend you to have a look at @Oooiii's "Oblivion Basic Modding Guide"
In particular the section "LOD (Optional)"
It includes switching RAEVWD for "Evenstars Colourwheel LOD Update"
(but keeping RAEVWD SI Edition).
Link to comment
Share on other sites

Hey thanks! Yes I know that mod and I also read that guide. :smile:

I think Arthmoor's distant models look better, in the end I tried the others and uninstalled them, but...

Today, after more tweaking, I found some very good settings for OSR that gave me a lot of fps back and reduced stuttering considerably, without removing anything from the mods I have installed: in particular I have changed the heap algo, switching to a dynamic one (n. 2) and I also changed the modes of the first three critical sections from the override list, those that one can find at the bottom of the INI... As always the results may very depending on the hw configuration, and certain settings might also bug the graphics (for instance my grass was disappearing everytime I cast a spell, and reappeared after the spell hit an enemy or a surface, weird stuff :D ):

Master = {
_comment = You can turn on or off each distinct feature from here.
bManageFPS = 1
bHookCriticalSections = 1
bHookHashtables = 1
bReplaceHeap = 1
bReplaceGetTickCount = 1
bLogToConsole = 0
bFastExit = 1
bExtraProfiling = 0
bFlushLog = 1
iSchedulingResolution = 1
bReplaceRandom = 1
bExperimentalStuff = 1
iMainHookPoint = 1
}
Experimental = {
_comment =bReduceSleep and iThreadsFixedToCPUs can probably reasonably be used at 1.  > 1 is a bad idea atm.
_comment =other settings here you're probably better off not touching
bReduceSleep = 0
iThreadsFixedToCPUs = 1
bSuppressRandomSeeding = 1
bMonitorBSShaderAccumulator = 0
iPrintSceneGraphDepth = 0
bReplaceRandomWrappers = 1
bBenchmarkHeap = 0
bAlternateHeapHooks = 0
iHeapMainBlockAddress = 0
}
FPS_Management = {
_comment =Absent a good reason otherwise, bInject_iFPSClamp=1, fMaximumFPS= 30 to 85 (or 0), fMinimumFPS= 10 to 20, iFPS_Report_Period = 2000 to 60000, fExtraSleepPercent = 0.0 to 0.2
bInject_iFPSClamp = 1
fMaximumFPS =  59.5
fMinimumFPS = 10
iFPS_Report_Period = 15000
fExtraSleepPercent =0.05
}
GetTickCount = {
_comment =This section is disabled by default - see Master/bReplaceGetTickCount
bForceResolution = 1
bPreserveDC_Bias = 1
bPreserveHighFreqComponents = 0
bForceSync = 0
iSyncLimitMilliseconds = 50
}
CriticalSections = {
_comment = CS stuff helps Oblivion, Fallout, and New Vegas significantly
_comment = much of the benefit comes from the Renderer+0x180 suppression (see overrides below)
_comment = modes: 1=vanilla, 2=fair, 3=staggering(hybrid of 1 & 2), 5=suppressed
bUseOverrides = 1
iDefaultMode = 2
iDefaultSpin = 2500        
iStaggerLevel = 5
bEnableMessages = 1
bEnableProfiling = 0
}
Heap = {
_comment =This section is disabled by default - see Master/bReplaceHeap
_comment =I recommend enabling it however.  
_comment = Heap replacement can produce MAJOR improvements in performance on Oblivion at a significant cost in stability
_comment = It crashes instantly on Fallout3 last I remember checking
_comment = It seems to work on Fallout: New Vegas ?
_comment = Algorithms: 1=FastMM4, 2=Microsoft (slow on XP), 3=SimpleHeap1, 4=TBBMalloc, 5=ThreadHeap2, 6=ThreadHeap3, 8=tcmalloc
_comment = Algorithms numbers 1, 4, and 8 require external DLL files in the Data/OBSE/Plugins/ComponentDLLs folder
_comment = Size is in units of megabytes, and only effects algorithms 3, 5, and 6 (other algorithms dynamically determine their own size)
iHeapAlgorithm = 2
bEnableProfiling = 0
iHeapSize = 5176
bEnableMessages = 0
bZeroAllocations = 0
}
Hashtables = {
bUseOverrides = 1
bEnableMessages = 0
bEnableExtraMessages = 0
bEnableProfiling = 0
}
OverrideList = {
CriticalSection = {
CallerAddress = 0x701748
comment = Renderer+0x180, recommendation=suppress (mode 5)
Mode = 3
}
CriticalSection = {
ObjectAddress = 0xB32B80
comment = MemoryHeap CS, recommendation=stagger (mode 3)
Mode = 3
Spin = 3600
}
CriticalSection = {
CallerAddress = 0x70172A
comment = Renderer+0x80, recommendation= modes 2(for stability) or 5(for performance)
Mode = 3
}
CriticalSection = {
ObjectAddress = 0xB3FA00
comment = Unknown4, recommendation=stagger (mode 3)
Mode = 3
}
CriticalSection = {
ObjectAddress = 0xB33800
comment = BaseExtraList, recommendation=stagger (mode 3)
Mode = 3
}
CriticalSection = {
ObjectAddress = 0xB3F600
comment = recommendation=stagger (mode 3)
Mode = 3
}
CriticalSection = {
ObjectAddress = 0xB3FC00
comment =
Mode = 2
}
CriticalSection = {
ObjectAddress = 0xB39C00
comment =
Mode = 2
}
Hashtable = {
comment =caller 0x00418E16
SizeAddress = 0x00418DDB
OldSize = 37
NewSize = 149
}
Hashtable = {
comment =caller 0x0045a8a1
SizeAddress = 0x0045A866
OldSize = 5039
NewSize = 133123
}
Hashtable = {
comment =caller 0x004A25BC
SizeAddress = 0x004A2586
OldSize = 523
NewSize = 2711
}
Hashtable = {
comment =multipart 1/2 - caller 0x004e614f
SizeAddress = 0x004E610F
OldSize = 37
NewSize = 47
}
Hashtable = {
comment =multipart 2/2 - caller 0x004e614f
SizeAddress = 0x004E612C
OldSize = 37
NewSize = 47
}
Hashtable = {
comment =caller 0x004E9014
SizeAddress = 0x004E8FD7
OldSize = 37
NewSize = 739
}
Hashtable = {
comment =caller 0x004f0e20
SizeAddress = 0x004F1B44
OldSize = 37
NewSize = 127
WordBits = 8
}
Hashtable = {
comment =caller 0x004f1d60
SizeAddress = 0x004F220A
OldSize = 7001
NewSize = 7001
}
Hashtable = {
comment =also caller 0x004f1d60
SizeAddress = 0x004F222E
OldSize = 701
NewSize = 901
}
Hashtable = {
comment =also caller 0x004f1d60
SizeAddress = 0x004F2B70
OldSize = 37
NewSize = 127
WordBits = 8
}
Hashtable = {
comment =multipart 1/2 - caller 0x004F2ACB
SizeAddress = 0x004F2A8B
OldSize = 37
NewSize = 713
}
Hashtable = {
comment =multipart 2/2 - caller 0x004F2ACB
SizeAddress = 0x004F2AA8
OldSize = 37
NewSize = 713
}
Hashtable = {
comment =multipart 1/2 - caller 0x004f2b3e
SizeAddress = 0x004F2AEF
OldSize = 37
NewSize = 1301
}
Hashtable = {
comment =multipart 2/2 - caller 0x004f2b3e
SizeAddress = 0x004F2B12
OldSize = 37
NewSize = 1301
}
Hashtable = {
comment =caller 0x0067fbb0
SizeAddress = 0x006C5396
OldSize = 37
NewSize = 83
}
Hashtable = {
comment =also caller 0x0067fbb0
SizeAddress = 0x0067FD35
OldSize = 191
NewSize = 3019
}
Hashtable = {
comment =also caller 0x0067fbb0
SizeAddress = 0x0067FE5F
OldSize = 191
NewSize = 2021
}
Hashtable = {
comment =caller 0x006C56B0
SizeAddress = 0x006C5674
OldSize = 37
NewSize = 299
}
Hashtable = {
comment =caller 0x00714788
SizeAddress = 0x00714752
OldSize = 59
NewSize = 239
}
Hashtable = {
comment =many callers: 0x00769C3D, 0x00769CAD, 0x00769D03, 0x00769D53, 0x00769DA1
SizeAddress = 0x00769BEB
OldSize = 37
NewSize = 297
}
Hashtable = {
comment =multipart 1/2 - caller 0x009dbf36
SizeAddress = 0x009DBF03
OldSize = 131213
NewSize = 905671
}
Hashtable = {
comment =multipart 2/2 - caller 0x009dbf36
SizeAddress = 0x00B06140
OldSize = 131213
NewSize = 905671
}
Hashtable = {
comment =caller 0x009e2726
SizeAddress = 0x009E26F3
OldSize = 37
NewSize = 297
}
Hashtable = {
comment =caller 0x00a10de6
SizeAddress = 0x00A10DB3
OldSize = 37
NewSize = 297
}
}
Edited by malautomedonte
Link to comment
Share on other sites

Good to learn you've improved performance

 

So you altered some values in OSR.

I saw you altered certain values under "CriticalSections"

and changed the heap type to "2" and upped the heap size to the whopping size of "5176".

Where there any other parts you changed?

Link to comment
Share on other sites

So, the heap size of 5176 works only when you are using a fixed-size heap algo, that is the value I was using with heap n. 6. It works well but I cannot go further than that size otherwise the game crashes as it loads the save game. With heap n. 2 the heap size will be adjusted dynamically instead, and maybe it is a good idea to use that when the game is heavily modded. It makes the game a bit more unstable though, as always it depends on the HW one owns. I find it very efficient and together with other settings, it gives you a smooth gaming experience, more than heap n. 6 in my opinion.

 

The other values I have changed are the first three critical sections (see under) and also iDefaultSpin, which I set at 2500. Changing these options improved greatly the stuttering I was experiencing. Keep in mind that some settings might bring to graphical glitches and oddities, in my case they affected grass rendering and shadow rendering. At least that is what I think, but I could also be wrong about it.

 

OverrideList = {
CriticalSection = {
CallerAddress = 0x701748
comment = Renderer+0x180, recommendation=suppress (mode 5)
Mode = 3 ---> Modified
}
CriticalSection = {
ObjectAddress = 0xB32B80
comment = MemoryHeap CS, recommendation=stagger (mode 3)
Mode = 3
Spin = 3600 ---> [i modified this too]
}
CriticalSection = {
CallerAddress = 0x70172A
comment = Renderer+0x80, recommendation= modes 2(for stability) or 5(for performance)
Mode = 3 ---> Modified

Edited by malautomedonte
Link to comment
Share on other sites

After further testing I switched to heap n. 8, it gives me a smoother experience than the n. 2, but, most importantly, one of the settings that was giving me lot of stutter when transitioning from one cell to another was ugriddistantcount, which I had set to 50, following OR's guide on tesreloaded (after about 10 yrs without playing Oblivion I forgot how important that setting was). THAT is what made my game stutter badly, too many low poly meshes were loaded on the distant grids with that value, meshes that I wasn't even able to see because too distant.

 

Now it's set to a more conservative value of 30 (together with ugriddistanttreerange) and stutter lasts 1-2 seconds, even if I am keeping most of the RAEVWD stuff activated... Cells get loaded and unloaded almost instantly.

 

I should have understood that before, since everytime I had the debug text activated on the screen I was seeing that the engine had to load something like 2000 objects in the memory ( O_O ) when switching to one cell to another. Now I can finally play and stop tweaking stuff the whole time!

Link to comment
Share on other sites

Oh sure those uGrid values certainly matter.

 

Myself, I have:

 

uGridDistantTreeRange=15
uGridDistantCount=15
You can see my screenshots (3 part "Working on VWD LOD vista"
here on the nexus focused on WVD/LOD's,
which use these values and notice there's still plenty of distant objects.
See:
and
Link to comment
Share on other sites

  • Recently Browsing   0 members

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