Sebastiano Mandalà
sebify.bsky.social
Sebastiano Mandalà
@sebify.bsky.social
#gamedev vet, C# fan, DOD/ECS expert. Made Robocraft & Svelto.ECS. Working on World Eternal Online.
also in relation to my previous post:

issuetracker.unity3d.com/issues/memor...

this is not solved, I can repro it in 6000.1.7 and 6000.0.26

all the cancellation tokens in the screenshot are leaked from InstantiateAsync
Unity IssueTracker - Memory Leak when using InstantiateAsnyc to instantiate a large Prefab
How to reproduce: 1. Open the “IN-76682_repro“ 2. Open the “SampleScene“ 3. Enter Play Mode 4. Select the “Example“ GameObject 5. In...
issuetracker.unity3d.com
June 23, 2025 at 1:27 PM
DO NOT use Object.InstantiateAsync. This hidden method must stay as it is. It causes massive leaks and me spending days to pinning it down. Eventually and sadly it wasn't Memory Profiler to help me but instead the still maintained (and now I know why) Heap Explorer plugin #unity3d
June 23, 2025 at 1:20 PM
Unity Memory Profiler is great but it can be easily improved a ton.
The comparison window misses two fundamental features (why?!)
I need to be able to compare just the resident memory
I need to be able to compare the Memory Map tab too!
I am doing this work now without the comparison help
June 20, 2025 at 12:51 PM
The addressables documentation used to have a very useful FAQ page, why is this gone? Especially the part on the addressable rebuild, there are info that are not found anywhere else in the docs!

docs.unity3d.com/Packages/com...
Addressables FAQ | Addressables | 1.20.5
See Scale implications as your project grows larger.
docs.unity3d.com
June 13, 2025 at 3:03 PM
I cannot believe that some sweet unity features like shader level of detail are NOT mapped by any node in ShaderGraph yet...so sad
June 6, 2025 at 7:47 PM
It's a while I don't use target frame rate on androi, today I had another go since the incremental GC doesn't run when I ask it to (manually), but inside WaitForTargetFPS, which is naturally driven by TargetFrameRate.
I set it 60 and it adds 11ms to a frame that lasts 11ms? WTH is going on here?!
June 6, 2025 at 4:03 PM
what's the deal with Unity URP, RenderMeshInstanced, and Reflection Probes? Promises to fix support remain unfulfilled. I'd use a fast RenderMesh version (falling back to SRP batching) if I could disable culling, but Unity devs think of it as unnecessary. Sigh.
June 2, 2025 at 11:07 AM
Did anyone already use a custom Static Analyser in Unity? Finding the right version of Microsoft.CodeAnalysis.CSharp is extremely time consuming, I don't understand why doesn't unity find a way to provide it. Also I wonder how Project Auditor works without it. Where can I find the right dll to use ?
May 28, 2025 at 12:42 PM
I tried everything, all the possibile combinations, to force Unity to ignore specific warnings for specific assemblies. I cannot make the csc.rsp files work, suggestions from google do not work (let alone AI). What am I missing? This is not for the IDE, but just for the unity console.
May 27, 2025 at 6:12 PM
C# devs, how hard would be to make generic overload through the where clause possible? I mean, I am already doing it, I just would like to avoid the namespace overhead.

So many things that could be theoretically done with generics have never been considered by the C# language committee
May 19, 2025 at 7:50 PM
Unity Memory Profiler has an incredibly useful feature that I just noticed few days ago, it reports the object that reference a managed object and thus prevent garbage collection. In the image is not a good example, but it shows the powerful feature nevertheless
May 16, 2025 at 8:58 PM
ok so you make fun of AI and whatever, vibe code is obviously a moronic concept, but AI is an incredibly useful too and does boost productivity also for game coders, where standards do not exist. Among the things it can do for me, code review is one of the most useful ones.
May 15, 2025 at 7:57 AM
I am part of that 1% of coders borderline hate ! in conditions. ! is just one character and so thin, so easy to miss. I need to see == false!!

if (IAmMakingAPoint == false)

is much clearer than

if (!IAmMakingAPoint )

if I use == false, then I can assume that

if (IAmMakingAPoint)

is for true
May 14, 2025 at 7:37 AM
Why is Unity aware of this since 5.3 and NEVER implemented an integrated solution? One of those incredible things, isn't it? Luckily nowadays we have AI that helps to write what would have been an incredible chore otherwise.
May 12, 2025 at 6:17 PM
Static callbacks are extremely dangerous. You put the remove in the wrong place (or even forget to remove the function from the Action) and bam, the this object will survive forever and maybe even multiple times!
May 7, 2025 at 12:34 PM
Dear addressables team.
While I found the ultimate and correct solution to my problem, I would say that Addressables.InternalIDTransformFunc must be applied also to the asset bundle dependencies when these are fetched by BundledAssetProvider. It seems to be an oversight. #unity3d
May 4, 2025 at 7:08 PM
Dear URP/Unity team, please issue the GPU sync call after the render graph is compiled and not before the culling. I am waiting for the vsync while the CPU still has a ton of stuff to do before you will issue the first command to the driver sigh.
April 30, 2025 at 2:30 PM
Dear URP team, after some research I would suggest:
- Initialise the camera render targets before culling
- ensure that on beginCameraRendering the camera targets are already usable.

Similarly OnCameraSetup should run before the culling and not after..no reason to not do it anyway right?
April 29, 2025 at 12:28 PM
We spent the last few days studying the input lag in our game. Not network lag, but just input lag. Turned out there was a ton of artificial lag, however we also realized that our dpad implementation was not smart enough, adding too much time for movement detection. The game is so much snappier now!
April 26, 2025 at 1:31 PM
I have been testing OGLes + rendering thread vs vulkan + graphics jobs for Android games and I still don't see much difference even with unity 6.1. isn't it a bit sad?
April 26, 2025 at 9:27 AM
My dislike for Task/UniTask used for gameplay code is not hidden, and while I am removing all its used from our code, I finally solved one of the main issues, the inability to profile it through the profiler. It was a quick fix after all. gist: gist.github.com/sebas77/9f29...
it will look like:
UniTask modification to show the task name in the profiler
UniTask modification to show the task name in the profiler - StateMachineRunner.cs
gist.github.com
April 16, 2025 at 6:14 PM
We found out that qualcomm drivers (not sure about others) were performing a vertex binning on our meshes for the shadow pass. I am still shocked that Unity doesn't do this implicitly and weirded out that a driver does that. We generate now optimised shadow meshes and the driver overhead is now 0
April 16, 2025 at 5:04 PM
I wonder how many millions of dollars are spent in AWS instances left on because forgotten or because nobody is sure what happens if they shut it down.
April 4, 2025 at 6:28 PM
I am a grow man now, I did my first rebase squash
April 3, 2025 at 5:06 PM
Stencil operations slow down low-end devices. Loading stencil data per tile is slower than just loading depth data, prompting us to remove stencil effects from our UI to render it at full resolution. We still use stencil on downscaled render targets.
April 3, 2025 at 2:08 PM