Problems with Camera Stacking URP (OSX and IOS)
Hi,
I have problems with Noesis (3.2.7) , Unity 6 (6000.0.43f1 LTS) and URP. I think that the issue is related with the camera stacking in MacOS and IOS. The UI that we paint during the gameplay is not visible in MAC and IOS (In build and in editor). The previous screens, during the navigation in the menus, are visible (in editor and in build). For that reason i think that should be related with camera stacking (In the game view is the only point that we're using camera stacking)
PS: In other platforms (windows and android) the UI during the game is visible.[bug][/bug]
I have problems with Noesis (3.2.7) , Unity 6 (6000.0.43f1 LTS) and URP. I think that the issue is related with the camera stacking in MacOS and IOS. The UI that we paint during the gameplay is not visible in MAC and IOS (In build and in editor). The previous screens, during the navigation in the menus, are visible (in editor and in build). For that reason i think that should be related with camera stacking (In the game view is the only point that we're using camera stacking)
PS: In other platforms (windows and android) the UI during the game is visible.[bug][/bug]
Re: Problems with Camera Stacking URP (OSX and IOS)
There are a few things that are still not working properly with Unity 6.
Could you please create a ticket for this and if possible attaching a simple scene reproducing the problem?
Thank you!
Could you please create a ticket for this and if possible attaching a simple scene reproducing the problem?
Thank you!
Re: Problems with Camera Stacking URP (OSX and IOS)
I’m experiencing the same issue with Unity and URP on Mac. I’ve decided to switch to working on Windows for now and compile on Mac afterward. Downgrading to Unity 2022 might also be a viable option until this is resolved.
Re: Problems with Camera Stacking URP (OSX and IOS)
I’m currently working on this, as we’re planning to release version 3.2.8 very soon.
Some of the issues on macOS (such as #3851) appear to be resolved when using Unity 6.1. Could you please try that version and see if the problem persists?
Additionally, if you have a minimal project that reproduces the Camera Stacking issue, it would be greatly appreciated. It would significantly help me diagnose and resolve the problem more quickly.
Thank you!
Some of the issues on macOS (such as #3851) appear to be resolved when using Unity 6.1. Could you please try that version and see if the problem persists?
Additionally, if you have a minimal project that reproduces the Camera Stacking issue, it would be greatly appreciated. It would significantly help me diagnose and resolve the problem more quickly.
Thank you!
Re: Problems with Camera Stacking URP (OSX and IOS)
The problem was related to using UnsafeCommandBuffer (seems to be deprecated in macOS/iOS builds).
There is a patch in #3851
There is a patch in #3851
Re: Problems with Camera Stacking URP (OSX and IOS)
It works for me with the patched files, as long as I have Compatibility Mode (Render Graph Disabled) unchecked under Render Graph in the Graphics settings.
Re: Problems with Camera Stacking URP (OSX and IOS)
In Editor mode, the patched files worked but in build, the app crash
Thread 49 Crashed:: UnityGfxDeviceWorker
0 libsystem_kernel.dylib 0x196d37720 __pthread_kill + 8
1 libsystem_pthread.dylib 0x196d6ff70 pthread_kill + 288
2 libsystem_c.dylib 0x196c7c908 abort + 128
3 libsystem_c.dylib 0x196c7bc1c __assert_rtn + 284
4 Metal 0x1a1dd24e0 MTLReportFailure.cold.1 + 48
5 Metal 0x1a1dadde4 MTLReportFailure + 448
6 AGXMetalG15X_M1 0x11e4dc9d8 -[AGXG15XFamilyCommandBuffer renderCommandEncoderWithDescriptor:] + 220
7 Noesis.dylib 0x12fabac68 0x12f680000 + 4435048
8 Noesis.dylib 0x12faa4924 0x12f680000 + 4344100
9 Noesis.dylib 0x12faa08ac 0x12f680000 + 4327596
10 Noesis.dylib 0x12f807978 0x12f680000 + 1603960
11 Noesis.dylib 0x12f8065dc 0x12f680000 + 1598940
12 Noesis.dylib 0x12f803c50 0x12f680000 + 1588304
13 Noesis.dylib 0x12f80e7a8 0x12f680000 + 1632168
14 Noesis.dylib 0x12f9edf78 0x12f680000 + 3596152
15 UnityPlayer.dylib 0x10cc74b44 GfxDevice::InsertCustomMarkerCallbackAndDataWithFlags(void ()(int, void), int, CustomMarkerCallbackFlags, void*, unsigned long) + 40
16 UnityPlayer.dylib 0x10d98ece4 GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&) + 35552
17 UnityPlayer.dylib 0x10dc5e330 GfxDeviceWorkerAutoreleasePoolProxy + 68
18 UnityPlayer.dylib 0x10d9860c8 GfxDeviceWorker::RunExt(ThreadedStreamBuffer&) + 476
19 UnityPlayer.dylib 0x10d985c84 GfxDeviceWorker::RunGfxDeviceWorker(void*) + 160
20 UnityPlayer.dylib 0x10ca26c24 Thread::RunThreadWrapper(void*) + 1172
21 libsystem_pthread.dylib 0x196d702e4 _pthread_start + 136
22 libsystem_pthread.dylib 0x196d6b0fc thread_start + 8
PS: I've tested with 6000.0.49f1 LTS and with 6000.1.3f1 and same result
Thread 49 Crashed:: UnityGfxDeviceWorker
0 libsystem_kernel.dylib 0x196d37720 __pthread_kill + 8
1 libsystem_pthread.dylib 0x196d6ff70 pthread_kill + 288
2 libsystem_c.dylib 0x196c7c908 abort + 128
3 libsystem_c.dylib 0x196c7bc1c __assert_rtn + 284
4 Metal 0x1a1dd24e0 MTLReportFailure.cold.1 + 48
5 Metal 0x1a1dadde4 MTLReportFailure + 448
6 AGXMetalG15X_M1 0x11e4dc9d8 -[AGXG15XFamilyCommandBuffer renderCommandEncoderWithDescriptor:] + 220
7 Noesis.dylib 0x12fabac68 0x12f680000 + 4435048
8 Noesis.dylib 0x12faa4924 0x12f680000 + 4344100
9 Noesis.dylib 0x12faa08ac 0x12f680000 + 4327596
10 Noesis.dylib 0x12f807978 0x12f680000 + 1603960
11 Noesis.dylib 0x12f8065dc 0x12f680000 + 1598940
12 Noesis.dylib 0x12f803c50 0x12f680000 + 1588304
13 Noesis.dylib 0x12f80e7a8 0x12f680000 + 1632168
14 Noesis.dylib 0x12f9edf78 0x12f680000 + 3596152
15 UnityPlayer.dylib 0x10cc74b44 GfxDevice::InsertCustomMarkerCallbackAndDataWithFlags(void ()(int, void), int, CustomMarkerCallbackFlags, void*, unsigned long) + 40
16 UnityPlayer.dylib 0x10d98ece4 GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&) + 35552
17 UnityPlayer.dylib 0x10dc5e330 GfxDeviceWorkerAutoreleasePoolProxy + 68
18 UnityPlayer.dylib 0x10d9860c8 GfxDeviceWorker::RunExt(ThreadedStreamBuffer&) + 476
19 UnityPlayer.dylib 0x10d985c84 GfxDeviceWorker::RunGfxDeviceWorker(void*) + 160
20 UnityPlayer.dylib 0x10ca26c24 Thread::RunThreadWrapper(void*) + 1172
21 libsystem_pthread.dylib 0x196d702e4 _pthread_start + 136
22 libsystem_pthread.dylib 0x196d6b0fc thread_start + 8
PS: I've tested with 6000.0.49f1 LTS and with 6000.1.3f1 and same result
Re: Problems with Camera Stacking URP (OSX and IOS)
In NoesisRenderer.cs could you change this:In Editor mode, the patched files worked but in build, the app crash
Code: Select all
public static void RenderOffscreen(Noesis.View view, UnityEngine.Rendering.CommandBuffer commands, bool invalidate)
{
#if !ENABLE_URP_PACKAGE_RENDER_GRAPH
// This a way to force Unity to close the current MTL command encoder
// We need to activate a new encoder in the current command buffer for our Offscreen phase
if (UnityEngine.SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Metal)
{
UnityEngine.RenderTexture surface = UnityEngine.RenderTexture.GetTemporary(1,1);
commands.SetRenderTarget(surface, LoadAction.DontCare, StoreAction.DontCare, LoadAction.DontCare, StoreAction.DontCare);
commands.ClearRenderTarget(false, false, UnityEngine.Color.clear);
UnityEngine.RenderTexture.ReleaseTemporary(surface);
}
#endif
Code: Select all
public static void RenderOffscreen(Noesis.View view, UnityEngine.Rendering.CommandBuffer commands, bool invalidate)
{
// This a way to force Unity to close the current MTL command encoder
// We need to activate a new encoder in the current command buffer for our Offscreen phase
if (UnityEngine.SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Metal)
{
UnityEngine.RenderTexture surface = UnityEngine.RenderTexture.GetTemporary(1,1);
commands.SetRenderTarget(surface, LoadAction.DontCare, StoreAction.DontCare, LoadAction.DontCare, StoreAction.DontCare);
commands.ClearRenderTarget(false, false, UnityEngine.Color.clear);
UnityEngine.RenderTexture.ReleaseTemporary(surface);
}
Re: Problems with Camera Stacking URP (OSX and IOS)
Thanks, I will fix that. Compatibility mode is reported to give problems with Native plugins (like Noesis) in D3D12. If you are in Unity 6.0/6.1 I recommend disabling Compatibility Mode.It works for me with the patched files, as long as I have Compatibility Mode (Render Graph Disabled) unchecked under Render Graph in the Graphics settings.
Re: Problems with Camera Stacking URP (OSX and IOS)
Apart of doing this i had to disable the metal validation flag. Now it works in editor and in build. Thanks!In NoesisRenderer.cs could you change this:In Editor mode, the patched files worked but in build, the app crashto this (so basically removing the #if...#endif block)Code: Select allpublic static void RenderOffscreen(Noesis.View view, UnityEngine.Rendering.CommandBuffer commands, bool invalidate) { #if !ENABLE_URP_PACKAGE_RENDER_GRAPH // This a way to force Unity to close the current MTL command encoder // We need to activate a new encoder in the current command buffer for our Offscreen phase if (UnityEngine.SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Metal) { UnityEngine.RenderTexture surface = UnityEngine.RenderTexture.GetTemporary(1,1); commands.SetRenderTarget(surface, LoadAction.DontCare, StoreAction.DontCare, LoadAction.DontCare, StoreAction.DontCare); commands.ClearRenderTarget(false, false, UnityEngine.Color.clear); UnityEngine.RenderTexture.ReleaseTemporary(surface); } #endifCode: Select allpublic static void RenderOffscreen(Noesis.View view, UnityEngine.Rendering.CommandBuffer commands, bool invalidate) { // This a way to force Unity to close the current MTL command encoder // We need to activate a new encoder in the current command buffer for our Offscreen phase if (UnityEngine.SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.Metal) { UnityEngine.RenderTexture surface = UnityEngine.RenderTexture.GetTemporary(1,1); commands.SetRenderTarget(surface, LoadAction.DontCare, StoreAction.DontCare, LoadAction.DontCare, StoreAction.DontCare); commands.ClearRenderTarget(false, false, UnityEngine.Color.clear); UnityEngine.RenderTexture.ReleaseTemporary(surface); }
Who is online
Users browsing this forum: No registered users and 8 guests