Black/blank screen on Mac devices

Some of our mac users report black/blank screen on Mac devices.

The main menu scene loads and music can be heard from the background - but screen doesn’t show anything.

I’m unable to reproduce the issue myself unfortunately.
This seems to be pretty rare bug - and only on Mac. On windows and linux this doesn’t happen at all as far as I know.

Using HDRP

I’ve tried:

  • with Unity 2023.2.20f1 and 6000.0.22f1
  • intel-only builds, and also intel+apple silicon builds
  • building without main menu in case it’s UI not rendering
  • forcing resolution to 1000x1000 windowed in script when loading
  • changed scripting backend from ic2pp to mono
  • several changes to graphics API settings (I don’t remember which ones, feel free to suggest more)

Steam discussion thread with test builds: Game visuals not working - Intel Macbook Pro, MacOS Sonoma 14.5 :: POOLS General Discussions - For the latest builds I just got confimation from one user via email that she had tried them and didn’t work.

I’m building with M3 MacBook Pro, but I have also tested with M1 MacBook Pro too. On both of my laptops the game runs fine

One option would be to use Game Porting Toolkit from Apple, but I would prefer if we got Unity mac builds to work

Anyway, starting to run out of ideas. Would be super grateful if anyone has even a hunch on how to fix this

Thank you :pray:

Hello, a black screen could be caused by the post processes, like a NaN propagating through the bloom or similar.

As far as I can see the issue only happens on macs with intel GPU, we had several issues with these GPUs having unexpected behaviors on mac.

I think there are a couple of things you can try to find out more about the issue:

  • enable the Stop NaN option in the camera
  • Disable volumetric fog
  • Disable all post processes

I can try on my side if I have the same issue with an intel mac

1 Like

Unfortunately, I couldn’t repro on an Intel Mac either with an integrated GPU or a dedicated (AMD).

1 Like

Ah too bad, thank you for trying. StopNaNs was already enabled in our camera. I will try a barebones build without post processing & volumetric fog next.

1 Like

We got report that the game started working, when I made a build with post processing and volumetric fog disabled. StopNaNs was already enabled in our camera.

So indeed, your guess was correct.

Questions:

  • Is there a way to detect if this happens? We could then disable post processing automatically
  • Is there a specific post processing effect more prone to causing this
  • Is there a way to gather more specific information / logs about what is causing this? Player.log files don’t seem to have anything relevant

PS. I don’t know if the forums is correct place for this kind of technical support, we have Unity Pro and we recently bought Unity Starter Success plan, but I haven’t heard back yet.

I’m not sure, maybe if it happens on a particular OS version + HW combination you could detect it but I don’t think you can detect that the effect works.

  • Volumetric Fog can cause this kind of issues, we had something “similar” with NaNs in the projection of volumetric fog: We really need a fix for the Black Volumetric FOG NAN Issue
    It was fixed and backported a long time ago so it’s probably not what you’re seeing.
  • Depth of Field is also unlikely, unless all of your pixels are out of focus, the algorithm doesn’t run on pixels that are in focus so we’d see a part of the image. Same for the Motion Blur.
  • It could be bloom but that would surprise me with the Stop NaN enabled.
  • Do you have any custom post-processing enabled?

I don’t think you’ll be able to get valuable info unless the metal validation layer is enabled.
That’s something you could try: enable the metal validation layer (Shader Validation) to see if it detects any illegal states or warnings from the editor:

Unity 6000.0.25f
I have the same problem, black screen on some Androids. No UI.
There is also a situation where some of my players will have very dark graphics and UI once they enable post-processing.
It was normal in previous versions.