Skip to content

Ventura Broke Dual Monitor Support #115

@Cryptiiiic

Description

@Cryptiiiic

Describe the bug
Ventura Broke Dual Monitor Support. Happens on AMD OS X and real macs.

To Reproduce
Steps to reproduce the behavior:

  1. Install macOS Ventura
  2. Plug in two monitors
  3. Use macOS normally
  4. Wait for WindowServer to freeze or drop mad fps

Expected behavior
There should be no window server freezing especially since there was no such issue like this on Monterey.

Screenshots
image
image

Logs

                                                        38   node::AsyncResource::get_async_id() const + 32892373 (Electron Framework + 82038725) [0x11e386fc5]
                                                          38   node::AsyncResource::get_async_id() const + 32885191 (Electron Framework + 82031543) [0x11e3853b7]
                                                            35   node::AsyncResource::get_async_id() const + 33055119 (Electron Framework + 82201471) [0x11e3aeb7f]
                                                              35   node::AsyncResource::get_async_id() const + 33076106 (Electron Framework + 82222458) [0x11e3b3d7a]
                                                                35   ANGLEResetDisplayPlatform + 2720802 (libGLESv2.dylib + 3331714) [0x10dc83682]
                                                                  35   glrATI_Hwl_SubmitPacketsWithToken + 112 (AMDRadeonX4000GLDriver + 55296) [0x10c549800]
                                                                    35   ??? (libGPUSupportMercury.dylib + 10621) [0x7ff91fe0a97d]
                                                                      35   IOAccelContextSubmitDataBuffersExt2 + 249 (IOAccelerator + 7057) [0x7ff8193afb91]
                                                                        35   IOConnectCallStructMethod + 46 (IOKit + 14853) [0x7ff812d2ba05]
                                                                          35   IOConnectCallMethod + 244 (IOKit + 10683) [0x7ff812d2a9bb]
                                                                            35   io_connect_method + 405 (IOKit + 11130) [0x7ff812d2ab7a]
                                                                              35   mach_msg2_trap + 10 (libsystem_kernel.dylib + 5554) [0x7ff80fcd85b2]
                                                                               *35   hndl_mach_scall64 + 22 (kernel + 1256886) [0xffffff800040edb6]
                                                                                 *35   mach_call_munger64 + 499 (kernel + 2868131) [0xffffff80005983a3]
                                                                                   *35   mach_msg2_trap + 967 (kernel + 1588007) [0xffffff800045fb27]
                                                                                     *35   ??? (kernel + 1586338) [0xffffff800045f4a2]
                                                                                       *35   ipc_kmsg_send + 1050 (kernel + 1492826) [0xffffff800044875a]
                                                                                         *35   ??? (kernel + 2700857) [0xffffff800056f639]
                                                                                           *35   is_io_connect_method + 894 (kernel + 8880526) [0xffffff8000b5418e]
                                                                                             *35   IOUserClient::externalMethod(unsigned int, IOExternalMethodArguments*, IOExternalMethodDispatch*, OSObject*, void*) + 867 (kernel + 8837907) [0xffffff8000b49b13]
                                                                                               *35   shim_io_connect_method_structureI_structureO + 364 (kernel + 8844956) [0xffffff8000b4b69c]
                                                                                                 *35   IOAccelContext2::submit_data_buffers(IOAccelContextSubmitDataBuffersIn*, IOAccelContextSubmitDataBuffersOut*, unsigned long long, unsigned long long*) + 1319 (com.apple.iokit.IOAcceleratorFamily2 + 30749) [0xffffff7f95ad781d]
                                                                                                   *35   IOAccelGLContext2::processDataBuffers(unsigned int) + 662 (com.apple.iokit.IOAcceleratorFamily2 + 105670) [0xffffff7f95ae9cc6]
                                                                                                     *35   IOAccelContext2::processDataBuffers(unsigned int) + 93 (com.apple.iokit.IOAcceleratorFamily2 + 43629) [0xffffff7f95adaa6d]
                                                                                                       *35   AMDRadeonX4000_AMDSIGLContext::processSidebandBuffer(IOAccelCommandDescriptor*, bool) + 351 (com.apple.kext.AMDRadeonX4000 + 285323) [0xffffff7f81003a8b]
                                                                                                         *35   IOAccelContext2::processSidebandBuffer(IOAccelCommandDescriptor*, bool) + 272 (com.apple.iokit.IOAcceleratorFamily2 + 42308) [0xffffff7f95ada544]
                                                                                                           *34   AMDRadeonX4000_AMDSIGLContext::process_ResourceList(IOAccelCommandStreamInfo&) + 606 (com.apple.kext.AMDRadeonX4000 + 250936) [0xffffff7f80ffb438]
                                                                                                             *31   AMDRadeonX4000_AMDAccelResource::BatchPrepare(AMDRadeonX4000_AMDGraphicsAccelerator*, AMDRadeonX4000_AMDAccelResource* const*, unsigned int) + 239 (com.apple.kext.AMDRadeonX4000 + 97313) [0xffffff7f80fd5c21]
                                                                                                               *31   AMDRadeonX4000_AMDAccelResource::BatchPrepareMappings(AMDRadeonX4000_AMDGraphicsAccelerator*, AMDRadeonX4000_AMDAccelResource* const*, unsigned int) + 116 (com.apple.kext.AMDRadeonX4000 + 96488) [0xffffff7f80fd58e8]
                                                                                                                 *30   AMDRadeonX4000_AMDGraphicsAccelerator::batchMemoryMapPrepare(IOAccelMemoryMap*) + 169 (com.apple.kext.AMDRadeonX4000 + 24699) [0xffffff7f80fc407b]
                                                                                                                   *29   IOGraphicsAccelerator2::freeWaitToPrepareVidMap(IOAccelMemoryMap*, bool, bool) + 230 (com.apple.iokit.IOAcceleratorFamily2 + 265078) [0xffffff7f95b10b76]
                                                                                                                     *29   AMDRadeonX4000_AMDAccelMemoryMap::prepare() + 89 (com.apple.kext.AMDRadeonX4000 + 241365) [0xffffff7f80ff8ed5]
                                                                                                                       *29   IOAccelMemoryMap::prepare() + 120 (com.apple.iokit.IOAcceleratorFamily2 + 343598) [0xffffff7f95b23e2e]
                                                                                                                         *29   IOAccelMemory::prepare() + 27 (com.apple.iokit.IOAcceleratorFamily2 + 12445) [0xffffff7f95ad309d]
                                                                                                                           *29   IOAccelVidMemory::wire() + 96 (com.apple.iokit.IOAcceleratorFamily2 + 357638) [0xffffff7f95b27506]
                                                                                                                             *29   AMDRadeonX4000_AMDAccelVidMemory::allocPhysical() + 676 (com.apple.kext.AMDRadeonX4000 + 239340) [0xffffff7f80ff86ec]
                                                                                                                               *20   AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 460 (com.apple.kext.AMDRadeonX4000 + 371834) [0xffffff7f81018c7a]
                                                                                                                                 *20   kprintf + 733 (kernel + 9237741) [0xffffff8000bab4ed] (running)
                                                                                                                               *4    AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 547 (com.apple.kext.AMDRadeonX4000 + 371921) [0xffffff7f81018cd1]
                                                                                                                                 *4    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 168 (com.apple.kext.AMDRadeonX4000 + 371172) [0xffffff7f810189e4]
                                                                                                                                   *4    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 206 (com.apple.kext.AMDRadeonX4000 + 370710) [0xffffff7f81018816]
                                                                                                                                     *3    IOAccelMemoryAllocator2::allocPages(GLKMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, unsigned int) + 148 (com.apple.iokit.IOAcceleratorFamily2 + 133524) [0xffffff7f95af0994] (running)
                                                                                                                                     *1    IOAccelMemoryAllocator2::allocPages(GLKMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, unsigned int) + 214 (com.apple.iokit.IOAcceleratorFamily2 + 133590) [0xffffff7f95af09d6] (running)
                                                                                                                               *2    AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 186 (com.apple.kext.AMDRadeonX4000 + 371560) [0xffffff7f81018b68]
                                                                                                                                 *2    AMDRadeonX4000_AMDHWMemory::allocate(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, _eOP_ORIGINATOR, _eOP_TYPE) + 17 (com.apple.kext.AMDRadeonX4000 + 370997) [0xffffff7f81018935]
                                                                                                                                   *2    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 168 (com.apple.kext.AMDRadeonX4000 + 371172) [0xffffff7f810189e4]
                                                                                                                                     *2    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 206 (com.apple.kext.AMDRadeonX4000 + 370710) [0xffffff7f81018816]
                                                                                                                                       *2    IOAccelMemoryAllocator2::allocPages(GLKMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, unsigned int) + 148 (com.apple.iokit.IOAcceleratorFamily2 + 133524) [0xffffff7f95af0994] (running)
                                                                                                                               *1    AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 620 (com.apple.kext.AMDRadeonX4000 + 371994) [0xffffff7f81018d1a]
                                                                                                                                 *1    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 168 (com.apple.kext.AMDRadeonX4000 + 371172) [0xffffff7f810189e4]
                                                                                                                                   *1    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 206 (com.apple.kext.AMDRadeonX4000 + 370710) [0xffffff7f81018816]
                                                                                                                                     *1    IOAccelMemoryAllocator2::allocPages(GLKMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, unsigned int) + 148 (com.apple.iokit.IOAcceleratorFamily2 + 133524) [0xffffff7f95af0994] (running)
                                                                                                                               *1    AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 357 (com.apple.kext.AMDRadeonX4000 + 371731) [0xffffff7f81018c13]
                                                                                                                                 *1    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 168 (com.apple.kext.AMDRadeonX4000 + 371172) [0xffffff7f810189e4]
                                                                                                                                   *1    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 206 (com.apple.kext.AMDRadeonX4000 + 370710) [0xffffff7f81018816]
                                                                                                                                     *1    IOAccelMemoryAllocator2::allocPages(GLKMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, unsigned int) + 148 (com.apple.iokit.IOAcceleratorFamily2 + 133524) [0xffffff7f95af0994] (running)
                                                                                                                               *1    AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 122 (com.apple.kext.AMDRadeonX4000 + 371496) [0xffffff7f81018b28]
                                                                                                                                 *1    AMDRadeonX4000_AMDHWMemory::allocate(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, _eOP_ORIGINATOR, _eOP_TYPE) + 17 (com.apple.kext.AMDRadeonX4000 + 370997) [0xffffff7f81018935]
                                                                                                                                   *1    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, _eAMD_MEMORY_ALLOCATION_TYPE, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 168 (com.apple.kext.AMDRadeonX4000 + 371172) [0xffffff7f810189e4]
                                                                                                                                     *1    AMDRadeonX4000_AMDHWMemory::allocateNonContiguous(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, bool, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE) + 206 (com.apple.kext.AMDRadeonX4000 + 370710) [0xffffff7f81018816]
                                                                                                                                       *1    IOAccelMemoryAllocator2::allocPages(GLKMemoryElement*, unsigned long long, unsigned long long, unsigned long long, unsigned long long, bool, unsigned int) + 140 (com.apple.iokit.IOAcceleratorFamily2 + 133516) [0xffffff7f95af098c] (running)
                                                                                                                   *1    IOGraphicsAccelerator2::freeWaitToPrepareVidMap(IOAccelMemoryMap*, bool, bool) + 93 (com.apple.iokit.IOAcceleratorFamily2 + 264941) [0xffffff7f95b10aed]
                                                                                                                     *1    IOAccelMemory::getPrepareCount() const + 39 (com.apple.iokit.IOAcceleratorFamily2 + 12527) [0xffffff7f95ad30ef]
                                                                                                                       *1    IOAccelMemoryMap::getPrepareCount() const + 36 (com.apple.iokit.IOAcceleratorFamily2 + 344270) [0xffffff7f95b240ce] (running)
                                                                                                                 *1    AMDRadeonX4000_AMDGraphicsAccelerator::batchMemoryMapPrepare(IOAccelMemoryMap*) + 63 (com.apple.kext.AMDRadeonX4000 + 24593) [0xffffff7f80fc4011]
                                                                                                                   *1    AMDRadeonX4000_AMDAccelMemoryMap::prepare() + 89 (com.apple.kext.AMDRadeonX4000 + 241365) [0xffffff7f80ff8ed5]
                                                                                                                     *1    IOAccelMemoryMap::prepare() + 120 (com.apple.iokit.IOAcceleratorFamily2 + 343598) [0xffffff7f95b23e2e]
                                                                                                                       *1    IOAccelMemory::prepare() + 27 (com.apple.iokit.IOAcceleratorFamily2 + 12445) [0xffffff7f95ad309d]
                                                                                                                         *1    IOAccelVidMemory::wire() + 96 (com.apple.iokit.IOAcceleratorFamily2 + 357638) [0xffffff7f95b27506]
                                                                                                                           *1    AMDRadeonX4000_AMDAccelVidMemory::allocPhysical() + 676 (com.apple.kext.AMDRadeonX4000 + 239340) [0xffffff7f80ff86ec]
                                                                                                                             *1    AMDRadeonX4000_AMDHWMemory::allocateLargeBlocks(AMDMemoryElement*, unsigned long long, unsigned long long, unsigned long long, _eOP_ORIGINATOR, _eOP_TYPE, bool) + 460 (com.apple.kext.AMDRadeonX4000 + 371834) [0xffffff7f81018c7a]
                                                                                                                               *1    kprintf + 733 (kernel + 9237741) [0xffffff8000bab4ed] (running)

// The kprintf means allocation failed as seen in the console app screenshot

System Version (please complete the following information):

  • macOS: Ventura 13.4.1
  • Build Number 22F82(22F770820d RSR)

System Information (please complete the following information):

  • CPU: Ryzen 9 5950x
  • MOBO: Asus ROG Crossair VIII Formula x570
  • GPU: Asus RX 580 Dual 4GB
  • Bootloader: OpenCore 0.9.3

Additional context
GPU Drivers seem to fail allocations for some unknown reason resulting in very long surface operations. It should not take a full second to read a surface. A real mac will use 300% with 2 monitors and sometimes have WindowServer hang forever leading to a watchdogd checkin kernel panic.

What I'm mainly asking is should I do nothing and wait for apple to fix this if at all, or is there something that can be done about it via Kexts or OpenCore?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions