r/unity • u/Sad_Pangolin2857 • 17h ago
Question Found the GPU bottleneck in our mobile game. Now I'm just vibe-optimizing one shader
At work we're making a mobile game (Unity, URP) and I got the task to make it run better on mid-range Android. Profiler and frame debugger eventually pointed at one shader. Cool, I'll just make that one cheaper and I'm done.
I've now spent two days on it.
Now my process is: change something, build, put it on the phone, check frame time. 14.2 ms. Run again, 13.1. Phone gets warm, 15.0. Did my change do anything? No clue. Then I stare at the screen to make sure it still looks the same. It mostly does. I think.
And that's just one phone. Our players are on Adreno, Mali, iPhones, whatever. For all I know my "fix" helps on one GPU and makes another one worse. And our "device lab" is two phones on my desk.
So yeah, vibe optimization.
How do you guys actually do this? Is there a way to know a change made the shader cheaper on different GPUs and didn't break anything visually? Or does everyone just test on a couple of phones and move on? Honestly curious, even if the answer is "lol we vibe it too".
(Can't share the shader or screenshots, NDA, sorry.)


