So I've been poking around with TTWOEE a little bit and found a few issues with a few possible fixes in hopes that this helps someone or spawns some sort of discussion.
Also, lets focus on finding a "fix" rather than suggesting to "deal with it", "reduce textures" or "reduce mods".
Typically, these may be non issues with different hardware, but they are with my setup.
Here are some things to note:
- my CPU is not stressed even per core
- its not related to HT as I have set up affinity correctly
- its not GPU as the game cant even utilize 50% of what it is capable of
- its not IO bottleneck as I am on an NVMe SSD(not SATA), yes this is connected with full 32GB/sec via PCIe 3.0 x4
ENBoost is pretty much a need when it comes to dx9 games and ridiculous texture sizes. For a reason or another, ENBoost has some issues like stuttering, lack of MSAA support and so on.
For example, I only want ENBoost and no other effects. Here is the relevant file.
Reasons for some specific settings
No noticeable difference
This seems to alleviate the unbearable stutter
No need to have it higher, doesnt affect the feel of the game at all.
This is just a starting point, but the game never really reaches the limit of 4096 though.
I left it enabled as it doesnt affect the feel of the game. Probably reduces VRAM consumption but I don't notice it.
Left it enabled if I boot the game in win7. The game never really reaches the limit of 4096 though.
After spending quite a bit of time on finding some sort of solution to the stuttering I found the only fix to alleviate the issue was to enable EnableUnsafeMemoryHacks. After doing some brief research it seems this can cause other applications cache to break or something rather and alt-tabbing is broken. I think this sacrifice is well worth it.
For some reason, when iMinGrassSize is set to about 40 or lower, I noticed that the framerate would drop tremendously(~20-40) when rotating the camera.
If set to 50 the side effect isn't that noticeable but its still kind of there. With a setting of 20 the game turns into a slide show when rotating the cam.
I looked into this quite a bit.
Posts online suggest that Heap Replacement from NVSR helps but it breaks the game for me.
It doesnt seem to be the actual grass generation part as I suppressed the seeding in NVSR(if it does what I think it does).
When standing still, the framerate is fine, so it isnt GPU related.
When the grass is toggled the issue is completely gone.
I've tried using the NVSR profile to find the specific thread or any correlation with thread vs FPS but I couldnt find anything.
The only "fix" that I've found is to set the size to something like 50 as it seems to have a fair representation of what I believe the landscape would look like. I would almost consider this a non issue but it's still there, it would be nice to know of some fix.
With Realistic Wasteland Lighting Enhancement I get this horrible framedrop when its raining. Setting iNumHWThreads=4(rather than 2 that is commonly suggested) seems to alleviate this issue but there may be other side effects. Removing the value also fixes the slowdown but I am unsure of any side effects.
MSAA is by far the best form of AA for FNV but ENBoost breaks the built in version. Well if you have nVidia(AMD probably has some equivalent) you can apply a few easy tweaks in nVidia Inspector to get it. First disable any other form of AA like SMAA, Edge AA, etc., in ENB, you must disable EnableAmbientOcclusion and EnableDetailedShadow, and then in nvidia inspector, find Fallout New Vegas' profile and apply these settings.
1. Set "Antialiasing Compatibility" to "0x00400041"
The other (DX1x) setting is irrelavent as FNV is DX9. Also, Im curious to what the binary flags are.
2. Set "Antialiasing - Behavior Flags" to "None"
3. Set "Antialiasing - Line gamma" to "Enabled"
This probably isnt needed.
4. Set "Antialiasing - Mode" to "Override any application setting"
5. Set "Antialiasing - Setting" to "4x [4x Multisamping]"
You can experiment with other types but any "cv samples" seems to make the game not show the menu.
6. Set "Antialiasing - Transparency Multisampling" to "Enabled"
Not required to get MSAA to work but it does has a nice effect.
7. Set "Antialiasing - Transparency Supersampling" to "4x Sparse Grid Supersampling"
You can experiment with other settings.
ENB AO is nice but any MSAA will break the game in a fantastic way. Heres another nVidia specific feature that is awesome. Then in nvidia inspector, find Fallout New Vegas' profile and apply these settings.
1. Set "Ambient Occlusion Setting" to "High Quality"
You can experiment with other settings.
2. Set "Ambient Occlusion usage" to "Enabled"
The 4GB patch causes some minor side effects. Supposedly with the built in MSAA, some textures will shimmer a very faint white transparent block. Not really sure why but it is indeed odd.
nVidia owners can get around this by disabling the built in version and use the tweaks above. Please note that the common arguement recommendation will not work because the EXE nae is different. I'd recommend removing the custom args and let the patch do its own thing.
To allow this to work with ENBoost, you need to install the files(atleast d3d9.dll, enbhost.exe, enblocal.ini and enbseries.ini) into the exe's folder and the Fallout NV game folder. I think it has something to do with the dll needed to hook with the exe in the exe folder but the other files in the main folder for enb to know where they are. If they are not in both then then ENB doesnt hook or ENBoost isnt running and the game almost instantly crashes.
Game slows down over time is believed to be caused by poor memory management but I cannot confirm this. After browsing the web and trying different things I noticed that the heap replacement in NVSR seems to help quite a bit, about a difference of about 40 fps to 55 under the specific set of conditions I tested with. I left it on the sixth algorithm but I changed the size to 450. For some reason the game will not launch for me with it set to 500+ which is strange because I see reports of the game running at 768 but is very unstable. My guess is something is hard-coded near the end of the allocation that either causes some memory corruption or some other ill effects.
I've been told that this is a known issue and isnt related to NVSE, NVAC, NVSR.
My guess is that its thread related but I do not have anything to back it up.
I'll add things as I find them