Hi everyone! i’m optimizing small city demo map. i have 3060 gpu. i successed. im playing with 100 fps in editor mode. but when I enter the game as “standalone game mode” and package the project, none of the optimization I do works. It only works in editor mode. Where could the problem be?
i have 3060 gpu. i successed. im playing with 100 fps in editor mode.
Haha, funny enough I was able to get
-
51 fps at near 1080p(fullscreen but window bar included)
-
with my mobile 3060(which is 20% slower than your desktop version)
-
in the big city(half a mile by half a mile).
I’m very interested in hearing all your methods on how you optimized it but I also had the same issue in play in editor.
I never used upscaling btw as I don’t consider that optimizing. And I also got it to look way sharper and stable looking without any blurry temporal method. Only FXAA.
So what I did is, stat gpu
in editor, and then stat gpu
in standalone and compared the differences in the ms
calculations.
I personally found VSM’s had gone from 2.3ms to 3.5ms. Your scalability also might be changing (raising, so less optimized performance) when you package it or in standalone. Your AA methods and Console variables are also probably changing too.
Also press Alt+R to monitor you’re CPU and GPU usage.
The AI could be tanking you’re performance. I never even turned that on since the code behind it is meant for 30fps.
If this helps all I ask you list your methods to reach 100fps in City Sample with a 3060 as I thought Nanite+Lumen+VSMs could only reach 60-59fps on you’re hardware.
No, this error is something different. The most important problem is that although the world partition is active on the map, it does not work. Secondly, it works in editor mode even though I set the culling settings of the objects, it doesn’t work when I package it. Although I set all textures and meshes on the map to the lowest settings, there is no change in fps.
the world partition is active on the map, it does not work
When you play out the gameplay code right(Non-editing mode, gameplay mode)? What version of UE5 are you using? Ever since 5.2 it’s been wonky, code wise with City Sample.
I set the culling settings of the objects
On Nanite? But doesn’t it cull automatically?
world partition does not work in any mode. I am using version 5.2. But I also tested it in version 5.0. It doesn’t work there either. Meshes are nanite, but all static meshes in the city are configured as instances within an actor. I selected the cull distance settings of all meshes one by one and rendered them when they reached a certain proximity. But as I said, the game works in editor mode. None of these settings work when I get the package.
I selected the cull distance settings of all meshes one by one
Sounds pretty smart and useful? Is the main thing that got you 100fps?
the game works in editor mode. None of these settings work when I get the package.
What is the main ms
differences in Standalone and the editor in Fullscreen -play mode.
i have 95-105 fps in editor mode (high quality)
i have 50-60 fps in standalone game mode and packaged version
I’m sorry, I need to see the screenshots on the same camera angle, Fullscreen in editor mode with “stat gpu” pulled up and the same in standalone mode.
I’m pulling up an example right now.
It’s not the graphics card that drops fps. So it has nothing to do with the GPU. The problem is with mesh rendering. Reducing the rendered meshes solves the problem and the fps increases. But your Engine setting is low. You get 55fps on low engine settings. Since I optimized it, I can get around 100 fps at High engine settings. I think it’s related to HLOD, but the project is so extensive that even 32gb ram i9 12900 cpu can’t handle it. I can’t refresh HLOD. Refreshing the HLOD will fix the problem?
My settings have nothing to do with scalability. I have tweak it so much of the “Low”. Ignore that please because it’s highly out of context.
I need the Stat GPU chart from both of your scenarios . I need to see what calculations are spiking in the pipelines or nothing is going to happen here.
We need to properly compare both cases. Stat gpu isn’t just about the GPU, it about the current scene.
It’s not about fps, I’m trying to explain it. We’re talking about something different right now. I say world partition is not working and culling is not done. You want to compare for fps value. I opened this thread to see if anyone could help me. But let me help you. Here’s the gpu stat in the editor and the stat in the standalone game mode
ss1 hosted at ImgBB — ImgBB (Editor Mode)
ss2 hosted at ImgBB — ImgBB (Standalone Mode)
I think I know what it is. TSR is spiking in standalone.
Either 2 things are happening. TSR settings are bumped up in standalone (Epic settings maybe). I don’t think this is it.
And the only thing that would make TSR spike would mean a higher amount of pixels fed into it, in other words a higher resolution. This was explained to me my by the maker of TSR.
It goes from .85 to 3.5ms! That’s gotta be a huge sign.
A higher resolution would also explain the higher Nanite Basspase.
Check r.ScreenPercentage, sg.ResolutionQuality in Editor and press ~ in standalone and execute the same numbers you find in editor(during good performance)
This inconsistency could be due to the Moniter Editor performance “feature”. Which lowers your resolution in editor (hence better performance).
i made myself script to set culling for all meshes but some are not possible to set, like frosted windows, also removed lot of windows from buildings, made them as separate glass materials as i wont to see through, rest is nanite. Big impoact is raytraced shadows as after actor culls you still have shadows in its place, im working on this currently with about half result
Big impoact is raytraced shadows
And you’re getting better performance with those over VSM?
I had to change to SWRT and used medium Virtual shadows Maps.
Turn off all post processing, including Motion blur, bloom, filthy film grain, etc.
I also had to scale down some of lumens calculations via PP settings.
Because I hate Temporal AA methods so much, I decided to work with FXAA instead and found ways to make it look completely stable without TSR or TAA using Lumen’s MAX Accumulation Cvars(25 was the sweetspot!). That gave the ability to scale down Lumen’s calculations in the Post process lumen settings.
This also gave a performance boost without any upscaling. 55fps at 1927X1927(1080p minus the windows bar) on a 20% slower mobile 6GB 3060.
I cannot tell you how interested and far behind in knowledge when it comes to range “culling” you both seem to be utilizing.
Also… I just found a cvar that lowers detial on Nanite meshes called r.Nanite.MaxPixelsPerEdge. It’s the “lower LOD setting” for Nanite I’ve been looking for months now! I tried it… Not much of a performance gain LMAO.
I really need to find a way to raytrace shadows with SW lumen.
@fatih4tepe Was I correct about my GPU profiling analysis?
If not, I have another Idea which could fix you’re HLOD problem.
Sorry I meant Visible in Ray tracing, but casting shadows is sufficient for me now i think. Finally got it working i believe, so i set what distance between player and instance i dont want to show shadows and then it sets cast shadows to 0 but when you get closer it sets it to 1. Still need work but should be betetr with perf, also trying same thing for physics with partial success so far.
Is that not CPU intensive? To keep checking the distance(setting and getting) on several meshes or did you find a more optimized algorithm?
@fatih4tepe
Come on my man? I got to know if my profiling analysis was correct?
i will package and test but seems promising. Im not checking against all instances only ones i hit with shot. I will make short video later to demonstrate what im doing.
you are right about that. But my problem is with hlod. I’d love to hear your suggestion regarding HLOD.