Skip to content

macOS 12.5: Nvidia Kepler and WindowServer crashing #1004

@khronokernel

Description

@khronokernel

With macOS 12.5 Beta 3 and newer, Apple has broken support for Nvidia Kepler GPUs. More specifically, for devices using Nvidia Kepler as primary screen rendering devices.

When running with the Kepler patchset on 12.5, we see that upon entering the user's password, WindowServer starts rendering and freezes shortly after (generally with the spinner). After approximately 10 seconds, the OS's watchdog will kick in, forcing you back to the login screen.

When monitoring logs, we see that WindowServer's not crashing but waiting due to another process. When examining the generated spin dump, the following can be seen on the main thread:

12  ??? (<F71FB3CA-5FCC-3577-9457-B047888A46D1> + 21806) [0x11140c52e] 1-12
    12  ??? (WindowServer + 13224) [0x109b873a8] 1-12
      12  SLXServer + 1690 (SkyLight + 2914661) [0x7ff8155d3965] 1-12
        12  server_loop + 91 (SkyLight + 2915439) [0x7ff8155d3c6f] 1-12
          12  CGXRunOneServicesPass + 214 (SkyLight + 2910471) [0x7ff8155d2907] 1-12
            12  run_timer_pass + 502 (SkyLight + 2674062) [0x7ff815598d8e] 1-12
              12  desktop_window_effects_update(CGXWindow*, bool) + 2606 (SkyLight + 262569) [0x7ff81534c1a9] 1-12
                12  ??? (MPSImage + 133129) [0x7ff81b22d809] 1-12
                  12  ??? (MPSImage + 130875) [0x7ff81b22cf3b] 1-12
                    12  ??? (MPSImage + 225677) [0x7ff81b24418d] 1-12
                      12  MPSAutoCache::GetTempTexture(MPSPixelInfo const*, MTLSize const*, MTLTextureDescriptor*, bool, TextureSizeAndAlign*) + 508 (MPSCore + 255618) [0x7ff819f07682] 1-12
                        12  ??? (MPSCore + 256411) [0x7ff819f0799b] 1-12
                          12  ??? (MPSCore + 252876) [0x7ff819f06bcc] 1-12
                            12  ??? (MPSCore + 159618) [0x7ff819eeff82] 1-12
                              12  ??? (GeForceMTLDriver + 1092826) [0x110444cda] 1-12

We see that one of the Metal Performance Shader sub frameworks, MPSImage, is having troubles rendering with Kepler's Metal driver.

Unfortunately for us, we cannot downgrade MPS or their sub frameworks due to the dyld shared cache fusion. Last time the MPS stack was on root was in macOS Catalina. More info on the challenges of the dyld shared cache can be read below:

Otherwise, systems with Kepler should avoid running 12.5 until further research can be done. No estimate for a fix can be provided at this time

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions