TGViewer
Everyday Unity Everyday Unity @everydayunity · 1.18K subscribers
Post #2441 837
The final talk of the conference, and the one I was most excited about: "Performance Tips & Tricks from a Unity Consultant."

I wanted to attend this session because one of my favorite talks ever at Unite was on the same topic by Ian Dundore. I learned a lot from it. I even wrote a post about all the tips from that session, which has helped me many times: https://t.me/everydayUnity/1623

While I didn't learn a lot of new things this time, the talk was still very good overall.

Highlights:
- Use native profilers such as SuperLuminal. The Unity profiler shows a very limited call stack, and in deep profile mode, too much performance is consumed by capturing the call stack. Results become increasingly skewed the deeper the stack is.
- Prewarm your shaders and use shader variant collections (SVC). However, SVC is not supported by all graphics APIs.
- More improvements for graphics and shaders are coming in Unity 6, so they encourage updating.
- Use the SRP batcher and ensure your shaders are SRP batcher-compatible.
- Use instancing for more than 100 identical meshes. This is interesting because a few years ago it was suggested that instancing should be used from 1024 meshes. I suppose this should be tested in Unity 6 with specific use cases to confirm.
- I also asked during the Q&A which low-level API he recommends, and he suggested using BRG (I have written a blog post about this as well a long time ago when BRG was just released https://t.me/everydayUnity/1716).
- Avoid quad overdraw. I shared a great post about this some time ago: https://t.me/everydayUnity/1634.
- Basic shader advice: use half/int16 where possible, reduce the number of variables, and minimize texture samples.
- One particularly interesting point was about memory allocations: Boehm allocates memory in 4KB blocks, and a block isn't freed until all buckets within it are free. Because of this, you should allocate long-term memory together so it’s placed in the same block.
- Avoid multiple cameras, as each adds significant overhead. Use render features instead when possible.
- Mix UI and 3D with camera space UI.
- Use the resident drawer in Unity 6 for repeating meshes where draw calls are a bottleneck.
- Avoid duplicates in Addressables. Use the Addressables Analyzer, Build Reporter, and Memory Profiler's potential duplicates tool to find duplicated assets.
- Untracked memory in the Memory Profiler might not be an issue; native profilers can help determine that.
Telegram Everyday Unity Best optimization tips by Unity engineers at Unite Compilation of best Unity tips gathered at Unite conference. I spent a bunch of time rewatching those talks so you don’t have to. https://gamedev.center/best-optimization-tips-by-unity-engineers-at-unite/…
  • 👍 5
  • 🔥 3
More from @everydayunity
  1. Sep 24, 2026Now you can change the effort mid session in new Claude. So the advice about caching from…
  2. Sep 24, 2026We were wondering in the comments what Claude reset does. Here is the answer https://www.r…
  3. Sep 22, 2026Introducing GPT‑6 Sol and Luna And better & cheaper sol and luna as an immediate response…
  4. Sep 22, 2026Introducing Claude Opus 5.5 \ Anthropic Cost and speed. Opus 5.5 requires less compute to…
  5. Sep 21, 2026Claude Code effort level and model selection effort means more than just "thinking time."…
  6. Sep 19, 2026Netcode for GameObjects 3.0.0 is now available It is preparation for Unity’s shared Netcod…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →