Unstable FPS with DH
I have a question regarding FPS with DistantHorizons-2.1.2-a-1.20.4-forge-fabric. I am also using indium, sodium, iris and lithium all on version 1.20.4 in mc.
I allocated 24GB of RAM to minecraft using the launcher. I attached an image with my current DH settings. Vanilla RD is set to 12 (default), I didn't mess with vanilla settings really.
My specs: R9 5900X, 32GB RAM, 3080 Ti, M.2 NVMe SSD
Even without enabling any shaders, my fps is limited to 150 (which is not bad but I think I get like 600+ fps on regular MC) it often dips even to below 100 and that after waiting for DH to load in the world. It gets particularly annoying when it dips to around and below 60 fps sometimes. Are my settings too high or is there something else I can do to improve my experience? I know a friend of mine with similar specs who is also struggling to get a smooth fps experience (5800X, 3070). It's just mostly the massive FPS dips which are really annoying.
If I need to provide any more information regarding this topic, please let me know.
71 Replies
Use nvidium as it will help with vanilla rendering
Try running the game without DH and see if u still get performance issues
Wait for all of the chunks and lod to finish being created as it uses a lot of ram which could be the cause of the lag spikes
DH will decrease your fps
Try decreasing quality preset
CPU load
the existence of instable implies the existence of outstable
And decrease RAM amount you allocated MC or better tune the JAVA GC
Could also be thermal throttling
Personally what fixed unstable fps for me was allocating 10gb ram and setting cpu load to low impact
The unstable fps could also be because you're not done generating the chunks
A really funny bad idea i recommend is setting the quality to absurdly low and then setting the cpu load to aggressive or the optimized threading
Then set the distance to absurdly high
2048 chunks or smth
then after you're done, disable dh, pregen the world with chunky with the same amount of distance then plae with dh
😎
that would take weeks
"-"
I never exceeded my 32GB ram when I checked task manager though
I wait for the chunks to load I don’t instantly start a world and expect it to run smoothly
If you allocate high memery amounts, the JAVA GC (thing that clears the memery) can start to lag your game
Allocating less, e.g. 16 can help
But it is best to tune the GC
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+ZGenerational -XX:+AlwaysPreTouch -XX:+UseFastUnorderedTimeStamps
These are flags I use
Note that they require JAVA 21
If you don't want to switch removing -XX:+ZGenerational
is the next best thingisnt 16 still a lot ? let alone 24 lol
it is, but most people start to see the lag around 12/16 GB, a lot less people at 8+, and some don't see it untill it hits their fps hard
And the game for me stabilizes RAM usage at 14 GB used
So if he had 24 GB allocated, changing it to 16 GB would be a good staring point and should create a difference
yup
Okay tyvm
I will try this
I will try nvidium when I get home, tyvm
Checked my temps, they get toasty with my cpu but no thermal throttling
Same for gpu
I you want to futher boost your fps
ImmediatelyFast
mod gave me 30% performance boost
there are o lot of those, but most not so effectiveModrinth
Search mods
Search and browse thousands of Minecraft mods on Modrinth with instant, accurate search results. Our filters help you quickly find the best Minecraft mods.
Ferritecore
decreases RAM used by MC a lot, so it might also helpDoes it affect gameplay elements or not at all?
Iirc some fake fps boosters disable spawning and weather effects etc
It’s funny though I thought 32GB was plenty for mc
It does not
Most of them does not
Noisium
and Faster Random
speeds up chunks and LOD generation a lot and at most it moves the trees location by a couple blocks
Lithium
is also a great perfmormance mod and it also shouldn't change gameplay in any wayI have lithium
I stated this in my post btw 🙂
I don't understand this part
I currently have -Xmx12G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
Do I replace everything starting from -XX:+UnlockExperimentalVMOptions till -XX:G1HeapRegionSize=32M with the part you wrote?
You can replace
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
with
-XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:+ZGenerational -XX:+AlwaysPreTouch -XX:+UseFastUnorderedTimeStamps
To reduce stutterokay
how do you write it like t hat
looks neat
``
\text\
wait, I can't get it to display the symbol
this one -> `
text
ah ok
it crashed btw do I need the java 21 thing for it to work?yes, but you can also just remove
-XX:+ZGenerational
It will perform a bit worse, but it will work with no JAVA update
still should be better then G1
I'd rather have it perform better
JDK 21
Yes
best to get it from here: https://adoptium.net
or here: https://www.azul.com/downloads/?package=jdk#zulu
Home | Adoptium
Eclipse Adoptium provides prebuilt OpenJDK binaries ...
Azul | Better Java Performance, Superior Java Support
Azul Downloads
it crashed again
is this not the correct one?
You have to also set in the launcher to use JAVA 21 or restart your PC after installation
depends, it is JAVA 21 so it will work
IDK why but Modrinht recommends JAVA 21 from ZULU
Don't know if it performes better or why
how do I change the launcher to java 21
vanilla launcher?
idk I have this one
I need to check, give me a second
I'll restart my pc too just to see if it works
If it won't work in the instance/installation setting > more options > java runnable > {select javaw.exe from JAVA JDK 21}
there is no option for that
oh wait
nvm im blind
I was looking in settings tab
it didn't crash it opened
did it help?
bro
I did all your steps from installing nvidium to ram to 12G to the line of code + java 21
it's jumping from 100 fps to 150
no shaders on
I waited for the DH mod to load all the chunks
in all honesty
I see like marginal if any improvements
it's a bit early perhaps but it's not the average FPS that annoys me it's the FPS jumps
I think I have identical fps tbh
NVIDIUM
and ImmediatelyFast
should have helped more... :/without shaders maybe it improved fps by 5%
IDK
it probably did help maybe I just need to play more
wierd
anyway I am keeping my settings like this
it's not 126 it varies from 80 to 130
I think my fps did improve a bit actually now that I am looking at it with the shader
I would say maybe 10-15%
regardless of whether this worked or not, thank you very much for your help
my fps is not bad again, I don't want to sound spoiled but even with my G sync monitor I can feel the slowdown happening
if you or anyone else has tips for me I will gladly try them out
I will tell my friend to try these tips as well
There are a lot more performance mods out there, but at this point I doubt that they will increase your fps by more then a couple %
Well you can still try if you have time, here are the most important ones (in order they benefited me/how I feel about them) (including those that you have):
- Sodium + Indium + Reese's Sodium Options / Embeddium
(embeddium on fabric is a bit better at the moment, but is not as compatible, thought compatible enought for me) - Sodium Extra - Nvidium - ImmediatelyFast - Lithium - FerriteCore - Entity Culling - Noisium - Faster Random - Krypton - Dynamic FPS - Memory Leak Fix - ModernFix - Better Beds - Seamless Loading Screen - Enhanced Block Entities - Fast Paintings - RailOptimization - lazy-language-loader - Language Reload - fast-ip-ping - LazyDFU - ThreadTweak - DashLoader - Exordium Untested by me, but what I heard good: - Debugify Experimental (may cause incompatibilities, visual bugs and crashes): - ScalableLux (incompatible with DH 2.1.2, any older and newer DH version works fine) - More Culling - Remove Reloading Screen - FastAnim - More Culling Extra - BadOptimizations DON'T use (with DH it degrades performance or in my opinion is bad): - Starlight - Concurrent Chunk Management Engine (C2ME)* - Fastload - Ksyxis - Chunky -# *C2ME can still help with overdraw prevention holes, but should be used as a last resort . I use most of them
(embeddium on fabric is a bit better at the moment, but is not as compatible, thought compatible enought for me) - Sodium Extra - Nvidium - ImmediatelyFast - Lithium - FerriteCore - Entity Culling - Noisium - Faster Random - Krypton - Dynamic FPS - Memory Leak Fix - ModernFix - Better Beds - Seamless Loading Screen - Enhanced Block Entities - Fast Paintings - RailOptimization - lazy-language-loader - Language Reload - fast-ip-ping - LazyDFU - ThreadTweak - DashLoader - Exordium Untested by me, but what I heard good: - Debugify Experimental (may cause incompatibilities, visual bugs and crashes): - ScalableLux (incompatible with DH 2.1.2, any older and newer DH version works fine) - More Culling - Remove Reloading Screen - FastAnim - More Culling Extra - BadOptimizations DON'T use (with DH it degrades performance or in my opinion is bad): - Starlight - Concurrent Chunk Management Engine (C2ME)* - Fastload - Ksyxis - Chunky -# *C2ME can still help with overdraw prevention holes, but should be used as a last resort . I use most of them
After playing it some more yesterday it seems it will always be like this. The combination of DH + shaderpack causes fps drops when moving around the world 🤷♂️
hmm
it don't happen to me
also 120 fps is pretty good if you ask me
i am limitng my fps to 90
i don't even need more then that
can you send me list of mods ?
The issue is that it drops drastically
It drops to like 50-60 fps sometimes. The frame time graph is not smooth at all
I am sailing with a boat and DH is rendering in new chunks and cpu is ~90-100% running
not doing anything crazy, I waited for DH to load in the chunks before playing
Hmm
I understand
Daym
Thats a lot
are all mods used
do remove unused once
what is your vanilla render distance
also DH one
If you don't want dh is just load new chunks all the time , when you finish loding what you want just set it to balanced or minimal impact
shaders ?
12
There is a third party app on Steam called
LossLess Scaling
and 1 of the feature it offers is frame generation, I myself use it to duplicate my fps from 50 to 100 or 40 to 120. It introduced some visual glitches and the input lag is worse (search for nvidia frame gen on youtube for more info), but it is wort it for me. The app is paid, but Steam offers 2 weeks money back if you won't like it.
I don't want to recommend paid software, but I want to mention it as a possibilityI am CPU bound though, don't think it would help much
HMm
Frame gen runs on the GPU and it was created as a "fix" to that problem,
For every frame created by the CPU, the GPU creates 2 or 3 frames, doubling or tripling the framerate
As I said, only the smoothness will improve and only up to the monitor refreshrate, the input lag will be worse
That's precisely where it helps most actually
Best advice for MC is to cap your framerate though
Helps stabilize frametimes a lot
Front Edge Sync with RTSS is the chefs kiss
No clue why it showed me a 2 month old thread, just saw that