View Issue Details

IDProjectCategoryView StatusLast Update
0004404NoesisGUIUnitypublic2025-10-16 16:41
ReporterXaron Assigned Tojsantos  
PrioritynormalSeveritycrash 
Status resolvedResolutionfixed 
Product Version3.2.9 
Target Version3.2.10Fixed in Version3.2.10 
Summary0004404: Crash in native game
Description

Noesis crashes the game.

Please see attached crash dump

Attached Files
PlatformWindows

Relationships

related to 0004406 resolvedjsantos NoesisGUI Waypoints disappear in our game 
related to 0004426 resolvedjsantos NoesisGUI Crash on android/ios 

Activities

jsantos

jsantos

2025-10-07 11:17

manager   ~0011086

I assume this is happening 100% of the times?

Could you please try with our debug library?

Xaron

Xaron

2025-10-07 17:14

reporter   ~0011087

Yes it's very reproducable. Where can I get that debug library again? Thank you!

jsantos

jsantos

2025-10-07 17:17

manager   ~0011088

Last edited: 2025-10-07 17:17

Please, try this one for x86_64:

Replace the one you have in Unity\Runtime\Libraries\Windows\x86_64.

Xaron

Xaron

2025-10-07 17:51

reporter   ~0011089

Thank you. Here's a crash dump with that debug lib:

jsantos

jsantos

2025-10-07 19:15

manager   ~0011090

Thanks for the crash. The minidump provides information but I need a bit more.

Would it be possible to get a release of your game where I could replace the Noesis.dll with my own version to debug?

Xaron

Xaron

2025-10-07 19:25

reporter   ~0011091

Sure, I'll prepare it and upload it and also will let you know the repro steps. :)

jsantos

jsantos

2025-10-07 20:22

manager   ~0011093

Thanks, I am reproducing the issue.

Regarding the second issue, please create another ticket related to this.

Xaron

Xaron

2025-10-07 20:40

reporter   ~0011094

Thank you, did so!

jsantos

jsantos

2025-10-08 13:03

manager   ~0011098

Please, try the following patched library:

Just replace the one you have in Runtime\Libraries\Windows\x86_64.

Your game is using the Legacy/Builtin pipeline right?

Xaron

Xaron

2025-10-08 13:27

reporter   ~0011100

That is correct, we're using the builtin render pipeline. I'll check the patched lib, thank you!

Xaron

Xaron

2025-10-08 13:54

reporter   ~0011105

Thank you I can confirm that crash has been fixed!

jsantos

jsantos

2025-10-14 12:52

manager   ~0011164

Could you please revert to the original 3.2.9 and apply the following patch to NoesisView.cs

Index: NoesisView.cs
===================================================================
--- NoesisView.cs   (revision 16147)
+++ NoesisView.cs   (working copy)
@@ -1745,6 +1745,8 @@

                 Graphics.ExecuteCommandBuffer(_commands);
                 _commands.Clear();
+
+                _updatePending = true;
             }

             if (_camera == null && _texture != null)

And please, let me know if this also fixes the crash.

Xaron

Xaron

2025-10-14 14:11

reporter   ~0011166

I reverted to the original 3.2.9 and can confirm that adding that patch above also fixes this crash.

jsantos

jsantos

2025-10-14 15:08

manager   ~0011168

Thank you for the feedback! I understand the waypoint issue is still there right?

Xaron

Xaron

2025-10-14 15:36

reporter   ~0011169

Yes. I've checked that too and it's still there.

jsantos

jsantos

2025-10-14 19:39

manager   ~0011175

Thanks, please with the following patch that is the one we are going to include in 3.2.10 this week:

Index: NoesisView.cs
===================================================================
--- NoesisView.cs   (revision 16162)
+++ NoesisView.cs   (revision 16163)
@@ -1742,6 +1742,7 @@
             {
                 _commands.name = Profiling.UpdateRenderTree;
                 NoesisRenderer.UpdateRenderTree(_uiView, _commands);
+                _updatePending = true;

                 Graphics.ExecuteCommandBuffer(_commands);
                 _commands.Clear();
@@ -1815,14 +1816,39 @@

     private bool _updatePending = true;

-    private void PreRender(Camera cam)
+    private static bool IsOverlayOf(Camera baseCamera, Camera overlayCamera)
     {
+        // 1. Must render to the same target (screen or same RenderTexture)
+        if (baseCamera.targetTexture != overlayCamera.targetTexture)
+            return false;
+
+        // 2. Overlay should render after the base camera
+        if (overlayCamera.depth <= baseCamera.depth)
+            return false;
+
+        // 3. Overlay should not clear color or skybox
+        if (overlayCamera.clearFlags != CameraClearFlags.Depth &&
+            overlayCamera.clearFlags != CameraClearFlags.Nothing)
+            return false;
+
+        // 4. Must render to the same display
+        if (overlayCamera.targetDisplay != baseCamera.targetDisplay)
+            return false;
+
+        // 5. Should cover the same area
+        if (overlayCamera.rect != baseCamera.rect)
+            return false;
+
+        return true;
+    }
+
+    private void PreRender(Camera camera)
+    {
         if (_camera != null)
         {
-            // In case there are several cameras rendering to the same texture (Camera Stacking),
-            // the camera rendered first (less depth) is the one that must apply our offscreen phase
-            // to avoid inefficient Load/Store in Tiled architectures
-            if (_updatePending && cam.targetTexture == _camera.targetTexture && cam.depth <= _camera.depth)
+            // For multiple cameras rendering to the same surface (camera stacking), apply all
+            // offscreen phases before the render pass is started to avoid inefficient Load/Stores
+            if (_updatePending && (camera == _camera || IsOverlayOf(camera, _camera)))
             {
                 if (_uiView != null && _visible)
                 {

Issue History

Date Modified Username Field Change
2025-10-07 11:08 Xaron New Issue
2025-10-07 11:08 Xaron File Added: afe30553-e244-4fe3-9ccc-2b7b20fe3300.zip
2025-10-07 11:17 jsantos Assigned To => jsantos
2025-10-07 11:17 jsantos Status new => assigned
2025-10-07 11:17 jsantos Note Added: 0011086
2025-10-07 11:17 jsantos Status assigned => feedback
2025-10-07 17:14 Xaron Note Added: 0011087
2025-10-07 17:14 Xaron Status feedback => assigned
2025-10-07 17:17 jsantos Note Added: 0011088
2025-10-07 17:17 jsantos Note Edited: 0011088
2025-10-07 17:18 jsantos Status assigned => feedback
2025-10-07 17:51 Xaron Note Added: 0011089
2025-10-07 17:51 Xaron File Added: 7d8a0663-0de9-41bb-9404-f8dbf24f0794.zip
2025-10-07 17:51 Xaron Status feedback => assigned
2025-10-07 19:15 jsantos Note Added: 0011090
2025-10-07 19:15 jsantos Status assigned => feedback
2025-10-07 19:15 jsantos Target Version => 3.2.10
2025-10-07 19:25 Xaron Note Added: 0011091
2025-10-07 19:25 Xaron Status feedback => assigned
2025-10-07 19:31 jsantos Status assigned => feedback
2025-10-07 20:00 Xaron Status feedback => assigned
2025-10-07 20:22 jsantos Note Added: 0011093
2025-10-07 20:40 Xaron Relationship added related to 0004406
2025-10-07 20:40 Xaron Note Added: 0011094
2025-10-08 13:03 jsantos Note Added: 0011098
2025-10-08 13:03 jsantos Status assigned => feedback
2025-10-08 13:27 Xaron Note Added: 0011100
2025-10-08 13:27 Xaron Status feedback => assigned
2025-10-08 13:34 jsantos Status assigned => feedback
2025-10-08 13:54 Xaron Note Added: 0011105
2025-10-08 13:54 Xaron Status feedback => assigned
2025-10-10 13:29 jsantos Category Unity3D => Unity
2025-10-14 12:52 jsantos Note Added: 0011164
2025-10-14 12:52 jsantos Status assigned => feedback
2025-10-14 14:11 Xaron Note Added: 0011166
2025-10-14 14:11 Xaron Status feedback => assigned
2025-10-14 15:08 jsantos Note Added: 0011168
2025-10-14 15:08 jsantos Status assigned => feedback
2025-10-14 15:36 Xaron Note Added: 0011169
2025-10-14 15:36 Xaron Status feedback => assigned
2025-10-14 19:39 jsantos Note Added: 0011175
2025-10-16 16:37 jsantos Status assigned => resolved
2025-10-16 16:37 jsantos Resolution open => fixed
2025-10-16 16:37 jsantos Fixed in Version => 3.2.10
2025-10-16 16:41 jsantos Relationship added related to 0004426