I’m struggling with low performance of my scene (around 30 fps at 2880×1500 screen). I’ve read a lot of posts about static batching, using LODs, playing with graphic settings and nothing seems help me. So turned off everything except for camera and directional light and still got no more that 70 fps. I went further, created a new URP project deleted everything and still get under 100 fps.
From my testing on macbook pro from that era, and 2020 for that matter, frame rate can drop just from having the resolution up high. Test the same scene on different resolutions.
thanks @antiflasher , what I meant to ask was, does smaller resolution speed the empty game? Just a test to see if the graphics output is limited by bandwidth.
Oh, didn’t get it. See the attachments. Seems that smaller resolution with ‘maximize on play’ gives a tiny boost, but without maximization the empty scene speed ups drastically. What could it mean?
Thats what I thought. It means your hardware cannot support the high rate of data going out to the framebuffer without slowing: bandwidth limited. There is nothing you can do to speed this aspect of your hardware.
However, as @BattleAngelAlita says, you have a good fps for this hardware. I think it is also good to use your laptop and find all the performance optimisations you can to optimise the rest of the code before you look at upgrading. I persisted with a 2015 macbook pro until it dies last year; it was a great challenge to get good fps from it!
I have the same exact hardware, and the same exact problem. URP is just unusable regardless of the settings - resolution, post process, etc. What I’ve found interesting is that the Built-In pipeline with the same (almost completely empty) Scene performs as expected even when Retina Support is turned on. So in theory it shouldn’t be the bandwidth.
Am I missing something, or URP is just designed around newer hardware?
It’s Unity 2022.1.13f1. In this case it’s almost a blank project, with only a few UI elements that do nothing, just to test the Scroll View, no 3D objects, no materials, no lights - except the default Directional, nothing. Only one implemented Update method to display the FPS in build. V-Sync disabled to see the theoretically possible framerates.
Based on the profiler, most of the time spent in Gfx.WaitForPresentOnGfxThread in the URP version, and I get 20-40 fps max. With Built-In it’s around 200 - as expected - even with Retina support turned on.
For best performance the latest LTS probably is better
Maybe there is some sort of vsync enabled? That can give wonky framerates
While URP is designed for all hardware with good performance, a slower mobile CPU, and a low end mobile GPU from almost 10 years ago will definitely have issues with modern engines. Maybe 2020 lts will do better.
You can still look up the general performance tips about settings etc online that might help
UI can be annoying sometimes with making many draw calls, but definitely should not be a big issue if it’s simple
But why does the Built In pipeline performs so much better then?
Yes, I’ve already found many of them, and also a lot of threads about URP performance issues…
Again, the same UI and same Scene runs very well on Built In, so I don’t think it’s something with my actual content. Especially nothing does anything yet.
Anyway, I can live with the Built In pipeline the only thing I’ll miss is Shader Graph.
I’m planning to rebuild my older C++ project in Unity, because of it’s 3D capabilities. I don’t want to reinvent and reimplement the wheel. It’s not a game, but a 3D tool, so I don’t need anything super-fancy, performance is much more important to me than look.
Built in hasn’t been updated in a few years, so it’s basically like you work in an older engine. That’s why it might perform better.
This big of a jump in performance probably has something else going on though. By doing comparisons etc you can see where the changes may be. The graphics settings, URP asset, URP renderer, and quality settings can change a lot as well. Also try it in an actual IL2CPP build btw. That way you can make sure it’s the URP and not just the editor
Hmm. Okay. I’ve just tried version 2021.3.8f1 LTS, with Performant Quality URP settings, V-Sync off, Post Process off, Retina Support off. It looks much better now. Testing the same project in Unity shows 180-200 fps in a “small” (usual Editor panels are open) Game View, 60-70 fps in a “maximized” (with pinch zoom gesture) Game View.
BUT. When I build the project, the standalone version (Editor is closed completely) gives me 60 fps in 720p, and 30 fps with a maximized window. I use Windowed mode.
The pinch-zoomed Game View and the maximized Window are roughly the same resolution, but the fps is halved in the Build version.
Not really. With OpenGL Core (4.1) the fps looks much better, 80-90 fps with maximized Build window (the Editor runs much smoother too), but the actual appearance is very glitchy and laggy. Turning V-Sync back on doesn’t help.
It’s getting really frustrating. I know this machine is kind of old, but I don’t think it’s that old. Should I stick to the Built In pipeline then? As you said, it’s like building on an old engine, and the product I aimed to build is not for the past I hope.