Unity 6 - Android Rendering Broken

Created a new project, export an .APK, and get the following screenshot. Tried it on other versions of 6 and they all do the same as well regardless of settings. I know for certain it worked a few months ago on the same devices.

1 Like

It would help if you would specify the device + OS version.

Geez! Sorry! Note 9 with Android 10.

Also, I went back and tried in 2022 and it works on the device with the same setup. In U6, the UI renders correctly but rendering the tilemap, sprites, etc. in world space doesn’t work.

I’m also getting reports of this error in the wild. We recently upgraded from Unity 2021 to Unity 6000.0.23f1. These users had no problems before the upgrade.

The error is:

RenderTexture.Create failed: depth/stencil format unsupported - D32 SFloat S8 UInt (94). There is no compatible format on this platform or this fallback to a compatible format is disabled in the import inspector.

The devices are:

A Lenovo yoga tablet, Lenovo YT-X705F:
CPU: Octa-core (4x1.95 GHz Cortex-A53 & 4x1.45 GHz Cortex A53)
GPU: Adreno 505
OS: Android 10

And an android device with:
GPU: Adreno ™ 308
CPU: ARMv7 VFPv3 NEON
OS: Android OS 8.0.0 / API-26 (OCP27.91-157/172)

Both users are reporting a black screen. However, camera-overlay UI canvases are rendering in front of the black screen just fine. Example:

Imgur

In this screenshot, the black behind the dialogs should be rendering a 2D, URP pixel art scene.

Any advice on a workaround would be greatly appreciated.

Also, does anyone know how to emulate these devices GPU capabilities to reproduce the bug? Can it be done in Bluestacks?

2 Likes

Thanks for the report, I’ll look into this.

1 Like

Just sharing up some more information as I discover it.

I’ve used Amazon Device Farm to emulate a device that I suspect would have this bug. A Samsung Galaxy Tab A 10.1" using Android 10. I’ve confirmed a build from Unity 2021 works fine, while a build from Unity 6 shows a black screen.

2021:

6000.0.23f1

And I’ve confirmed that the RenderTexture error is flooding the logs in the Unity 6 apk (which was installed after minute 5 in my session):

There was a problem with Quest2 in 2022, where its GPU said D32_S8 depth textures are supported, but crashed when using them. I know it’s not the same bug that was fixed, but definitely is related.

Amazon Device Farm! Whaaaat! That’s really cool.

It persists through all 3 of these versions below. It worked a while back for certain on 14f1. I got away from dev for a few months and came back to the black screen. Tried different versions to see if it resolved itself. No dice.

I did upgrade Hub. Don’t know if that could be related or not.

Final other data point, in line with @Welfarecheck’s experience, this happens for a straight up NEW Unity 6 project for me. Not just an upgraded project.

I created a new 2d Unity 6000.0.23f1 project and hit this bug on the Samsung Galaxy Tab A 10.1"

Here are the steps I did to repro:

  1. Create new 6000.0.23f1 project
  2. Create Tilemap
  3. Create Tilemap Palette
  4. Drop some textures into the Assets folder
  5. Add textures to Tilemap Palette
  6. Paint Tilemap with some tiles

I also added ARMv7 to my Target Architectures in Project Settings, and selected “Split APKs by target architecture”

Expectation (my Google Pixel 3):

Actual (remote Samsung Galaxy Tab A 10.1"):

The error messages are hard to read from the remote session, but in logcat they are:

RenderTexture.Create failed: depth/stencil format unsupported - D32 SFloat S8 UInt (94). There is no compatible format on this platform or this fallback to a compatible format is disabled in the import inspector.
UnityEngine.Rendering.RTHandleSystem:CreateRenderTexture(Int32, Int32, GraphicsFormat, Int32, FilterMode, TextureWrapMode, TextureWrapMode, TextureWrapMode, TextureDimension, Boolean, Boolean, Boolean, Boolean, Int32, Single, MSAASamples, Boolean, Boolean, Boolean, RenderTextureMemoryless, VRTextureUsage, String)
UnityEngine.Rendering.Universal.RenderingUtils:ReAllocateHandleIfNeeded(RTHandle&, RenderTextureDescriptor&, FilterMode, TextureWrapMode, Int32, Single, String)
RenderTexture.Create failed
[./Runtime/Graphics/RenderTexture.cpp line -1170891428]
Light2D Pass: Unable to create transient attachment 0 with format D32 SFloat S8 UInt and 1 samples.
EndRenderPass: Not inside a Renderpass
Renderer2D Pass: Unable to find surface for attachment 0
1 Like

I have a repo using a Galaxy Note 9 on our testing device farm, using the 2d repo steps. I’ll get to the bottom of it. Thanks for all the notes!

2 Likes

Did a bug report get filed for this? I have a fix, if there’s a bug I can associate the fix with that, otherwise I’ll just make a general release note for it. The URP 2D RenderPass was always trying to use D32_S8 depth textures, but it should have used D24_S8 for Android.

1 Like

I didn’t get a chance to create a bug report. Haven’t seen one either.

1 Like

That’s fine, I’ll make one for the PR

1 Like

I also encountered the same problem.

@JagerZero It looks like your issue is different. We’ll have to investigate that separately.

I’m getting these errors when playing a dev build on PC:

EndRenderPass: Not inside a Renderpass
BlitFinalToBackBuffer/Draw UIToolkit/UGUI Overlay: Attachment 0 was created with 1 samples but 8 samples were requested.
NextSubPass: Not inside a Renderpass
EndRenderPass: Not inside a Renderpass
BlitFinalToBackBuffer/Draw UIToolkit/UGUI Overlay: Attachment 0 was created with 1 samples but 8 samples were requested.
NextSubPass: Not inside a Renderpass
EndRenderPass: Not inside a Renderpass
BlitFinalToBackBuffer/Draw UIToolkit/UGUI Overlay: Attachment 0 was created with 1 samples but 8 samples were requested.
NextSubPass: Not inside a Renderpass

Edit: I’m not using UIToolkit for anything AFAIK

Edit 2: Could someone tell me if this is more likely a Unity-related issue rather than for example my custom postprocess fullscreen shader graph stuff?

I tested around some stuff and if I remove or disable my second camera component (overlay, for UI), I get rid of the errors and everything works. So just having a second camera may cause this?

I’m on Unity 6000.0.25f1. Same thing happened with .23f1 (which is why I updated).

UGUI Overlay always gets run for RenderGraph, as a blit pass for any rendered UI, even if you don’t have any uGUI in the scene.

Your issue is GLES related, unlike this thread’s bug which is Vulkan related.

I did find a different bug related to the uGUI Overlay pass from RenderGraph recently, but it doesn’t seem to the same as the issue you’re seeing. I will look into this issue, but we can move the discussion over to your other thread. If you have any more info, about the devices you’re testing, and if you can provide a repo, that would be very helpful otherwise I won’t know if I fix the issues or not.

Hey, I’m not sure if you were talking to me here since I don’t have another thread? I’m not a pro in these forums so maybe thread is a concept I don’t fully understand here. :eyes:

I’ll make a quick new project with just two cameras and see if it happens, will report back soon.

@Erikoinen Oh, sorry! I mixed you up with the previous GLES related post. Too many threads of thought today. I’ll be taking a look at what you posted.