Hey all,
I've got this running smoothly on my Macbook Pro 2011 without much modification, the only issue I'm facing is Sidecar crashes after showing a black screen on the iPad for 5 seconds. After checking, it seems that Sidecar is looking for a Metal Device (a GPU supporting metal) for Sidecar. I'm wondering if it would be possible at all to use OpenGL for Sidecar? It seems very far fetched and I'm not sure if it's possible but it was worth a suggestion.
Thanks!
Edit:
After reading the logs, this is what I get from when Sidecar is started to when it crashes:
SidecarReplay sends an event ‘com.apple.sidecar’ with 1 key
SidecarRelay activates something
SidecarRelay registers events with the IDs *
SidecarRelay (RPStreamServer) activates 0x0>
SidecarRelay (RPRemoteDisplaySession) registers the request ID “streamStart”
SidecarRelay (RPRemoteDisplaySession) registers the request ID “streamStop”
rapportd (RPRemoteDisplaySession) activates a session from SidecarRelay:ID to the iPad, in my case an iPad 7,5
SidecarReplay sends an event ‘com.apple.sidecar’ with 2 keys (to the iPad maybe?)
SidecarReplay sends another event ‘com.apple.sidecar’ with 2 keys (to the iPad maybe?)
SidecarRelay (RPRemoteDisplaySession) is activated, probably established the link with the iPad.
SidecarReplay sends another event ‘com.apple.sidecar’ with 2 keys (to the iPad maybe?)
rapportd queues multiple event sends, these are then sent
SidecarReplay sends another event ‘com.apple.sidecar’ with 2 keys (to the iPad maybe?)
rapportd then receives an event ID ‘com.apple.sidecar’ with 1 key from the iPad
SidecarRelay (RPStreamServer) starts a stream session with the ID: ‘ID:HIDRelay’, the type RPCnx
SidecarRelay’s CUTCPServer Is then activated on port 51804
The session that was started is then prepared by SidecarRelay in the RPStreamSession
SidecarRelay starts a stream session with the type UDPNWPath and another with an AVCVideoStream
The UDPNWPath is then queued for activation
The UDPNWPath is then started
The connection is started from a UDID at the port 50440 (probably the iPad)
the session connection is accepted from the HIDRelay (RPCnx)
There is another server connection queued for startup by the SidecarDisplayAgent with the type RCPnx
SidecarRelay (CUTCPServer) then invalidates the stream, after the stream is activated on socket 4. This is repeated multple times until it gives up, with errors from the AVCVideoStream and more, hinting at a metal issue? ‘Unable to get metal device’ is also printed multiple times from the avconference daemon.
From my research, it seems like sidecar is requiring metal to function, it may be possible to use OpenGL instead but very unlikely, hopefully this analysis can help someone, if you have anything to add just reply and I’ll add it.