X0nk / Bliss-Shader

A minecraft shader which is an edit of chocapic v9
Other
563 stars 33 forks source link

Immense fps drops when looking at and then moving to a certain direction (In-dev) #341

Open ZenobiaCatnap opened 3 days ago

ZenobiaCatnap commented 3 days ago

Hi! I'm using the latest in-dev version of Bliss

I get very, very big fps drops whenever I look at a certain direction, which gets worse when I start moving to said direction. This is solved when I manually (not reload) turn the shader off then back on... Then I look at another direction, usually behind from where I turned the shader on, then I get drops again.

I'm using Bliss on Minecraft 1.20.1, Forge 47.3.0, with the latest versions of Embeddium and Oculus, with Distant Horizons 2.1.2 along with a couple other mods. I'm using ATLauncher so here's my mods list: HEEEEEEEELP! HELP MEEEEEE! HEEEEEEEEEEEE

My specs are: GPU: RX 6600 CPU: Ryzen 7 5800X3D Ram: 16gb

Here's some video footage. Sorry for the quality, but you can see the frame counter on the upper right

https://github.com/user-attachments/assets/79c9f52a-3e5b-476f-814d-be58650cdb01

This happens on multiple locations in the world not just these two, with different terrain gen mods, and waiting in one spot to see if it gets better in case it just needs to load anything doesn't seem to work either.

Sorry if I get anything wrong here, this is my first time ever using Github.

X0nk commented 3 days ago

what on earth... alright, since i have no idea how that could happen, i am gonna ask for you to isolate the testing environment. to do this is to simply remove all mods, and only keep the ones needed to use shaders enabled (in your case, embeddium and oculus). this will immediately determine if mods are conflicting and causing problems

if it stops after isolating, adding mods back until it happens again can narrow down what mod is causing the conflict, if it exists. i would personally start by adding distant horizons back in with just embeddium and oculus, since it has alot of performance impact in itself

ZenobiaCatnap commented 3 days ago

Alright, thanks. This might take me a while, so I'll report back when I'm done

augustsaintfreytag commented 3 days ago

I've been experiencing a similar thing and of course it's exactly where I've been building my first proper house. Even with culling mods, looking in a very specific direction causes FPS to drop massively (around 30 with vsync). Notably, my GPU usage drops down (from 90% to 50-40%) when this happens, which looks a bit like an excessive draw call problem. The direction for me is near a forest but not actually the forest, so leaves don't seem to be the culprit.

Thinking about this, I should check out that spot in wireframe and see if something about culling fails here and way too much geometry is rendered unnecessarily.

ZenobiaCatnap commented 3 days ago

I'm back with some results, and after a LOOTTT of flying around in creative... With default worlds with Distant Horizons, Embeddium, and Oculus, Bliss runs absolutely fine, so I went for Oh The Biomes We've Gone next.

After testing even OTBWG's dependencies one by one, I finally ran into the issue again when using OTBWG itself. This time though, neither reloading or manually turning Bliss off then on again helped.

https://github.com/user-attachments/assets/14f84ce9-4bbf-4227-bcfb-41c8e1517152

I ran into the fps drop here where there is a LOT of trees and vines. I know nothing about shaders (and not a lot about this stuff in general) but one thing I'd like to note is that I first ran into this problem with Biome O' Plenty. Both BOP and OTBWG use TerraBlender so maybe that might have to do something with it? I dunno. But I've tested Terrablender by itself with no issues.

Maybe Bliss doesn't handle trees and vines well? Maybe it isn't a Bliss exclusive issue? Maybe it's a problem on OTBWG/BOP's side- Or maybe shaders just don't mix well with biome mods at all.

I'm also glad I'm not the only one who's going through this, I've been actually been trying to fix this for days before resorting to github and found basically nothing helpful when looking it up. My GPU usage doesn't seem to go down though.

augustsaintfreytag commented 2 days ago

The view in your video is definitely more "obviously complex" than mine where I'm looking down a barren field. I'm not using BOP or BYG, but I am using Tectonic, so we both have biomes that are more sophisticated than vanilla world gen.

The drop in GPU usage could be related to our respective hardware bottlenecks. It'd have to mean that looking in that direction has my system CPU/memory/io bottlenecked so the GPU doesn't get enough work assigned to be properly utilised. I have a Ryzen 9 7900X (12/24 cores) if you want to compare.

vlcsnap-2024-11-13-12h11m24s062

This is my scene, it's very unsuspecting. This is with 16/16 render and shadow distance which is absolutely fine in normal gameplay for my system. You can see, basically no entities, GPU usage is below 50%. Caves underground should be culled, looking to the left into the forest where there are much more leaves instantly stabilises the framerate. The frametime graph changes like this:

image

The most intriguing part of this problem is that it persists even on "Fast" rendering mode, where leaves are not transparent.

X0nk commented 2 days ago

augustsaintfreytag, your framerate drop looks most likely caused by vsync. it caps framerate at half your refresh rate when you cant hold the fps equivalent to that refresh rate for example, say you need 60 fps for 60Hz, but you're getting 50 fps. it will cap at 30 fps because you cant hold a steady 60fps.

this is minecrafts vsync implementation, it is garbage as you can see... i recommend using graphics driver software and forcing that vsync onto the game, and disabling the in-game vsync settings.

X0nk commented 2 days ago

Maybe Bliss doesn't handle trees and vines well? Maybe it isn't a Bliss exclusive issue? Maybe it's a problem on OTBWG/BOP's side- Or maybe shaders just don't mix well with biome mods at all.

yes, please test other shaders. bliss/shaders do not do anything special with leaf/vine rendering, the effects done on them are miniscule and wouldnt cost anything more on another block

ZenobiaCatnap commented 2 days ago

Alright, it's not Bliss. The problem comes with other shaders but, I decided to actually isolate Distant Horizons itself, and THAT seems to be culprit.

I'm using DH 2.1.2 as that is the ONLY version that will work. Any version above just doesn't work (crashes the game), and any version below bugs the game into oblivion...

And unfortunately there doesn't seem to be a fix as Oculus isn't ever going to update past 1.7.0, DH 2.1.2 is literally the only version that is compatible with shaders on Forge (with the latest versions of Oculus and Embeddium anyway). That sucks. Maybe I'll try out different combinations of DH, Oculus, and Embeddium versions and see if these massive frame drops stop.

Anyway, thanks for making Bliss, the shader is genuinely breathtaking, my absolute favorite feature is the ground fog/atmospherics!

augustsaintfreytag commented 1 day ago

I can confirm that disabling vsync and using windowed mode (even borderless fullscreen) gives a much higher framerate and generally fixes these massive drops, Minecraft's (or is it Sodium in this case?) built-in vsync is definitely horrible. I've yet to find a good solution that gives a high framerate along with stable frametimes, though.

X0nk commented 1 day ago

Alright, it's not Bliss. The problem comes with other shaders but, I decided to actually isolate Distant Horizons itself, and THAT seems to be culprit.

hm i see. its unfortunate that you cant use any newer versions.

X0nk commented 1 day ago

I've yet to find a good solution that gives a high framerate along with stable frametimes, though.

graphics driver software (the Nvidia control panel/Nvidia app, or AMD's adrenalin software) both give you the ability to force their own vsync onto any game, it works way better than minecrafts vsync. on nvidia use the "fast sync", on AMD use "enhanced sync" these will basically turn off if you cant hold the framerate, instead of capping at half

ZenobiaCatnap commented 1 day ago

Oh man... Welp, time to bring this to the Distant Horizons devs

https://github.com/user-attachments/assets/56405228-9f6c-43c6-ad34-dccf1b255afd