- Oct 17, 2014
Hiiiii! Sorry for being so quiet since my post yesterday. I've been busy. I've significantly improved the SkyLight/CoreDisplay patches to a point where I feel they're ready to be tested/improved upon by you guys!
As of yesterday, I had binary patched about 5 different files (including AppKit, yikes) in order to just barely get the system running. Today, I undid that and implemented wrapper binaries for the old frameworks, with stub functions to (mostly) keep things happy -- a much cleaner solution. I just finished doing a full reinstall to re-check everything, and I'm writing this from accelerated Catalina on my 2010 MacBook!
So... on a system with a working framebuffer (which should be achievable by following the same steps as for 10.14.5), you should be able to just replace these two frameworks with the attached copies. No other binary patches needed!!
For convenience I'm also including the fix for the HID timeout, as well as a patched IOSurface.kext that seems to be required to load the nVidia Tesla kexts.
Now for the bad news. Overall, the system is still quite unstable, absolutely not usable as a daily driver yet. For one, most of my rewritten functions are just stubs. So, things like
Screen Time(edit: actually seems to be working!) and automatic light/dark switching, which require functions in the new SkyLight? Not working at all. Not sure if they ever will. There is a bit of other weirdness too, like the way that windows can be extended over the Dock -- my stub SLSGetDockRectWithOrientation currently does nothing. And sometimes, stuff just... crashes, and I don't know why yet.
Anyways, have fun! I'm heading to bed, but I hope some of you guys can try this out. I'm definitely struggling a little here, so hopefully some smarter people can help me Speaking of which, @pkouame, how are your efforts going? If we can get this working without the SkyLight replacement altogether,
I will have wasted a massive amount of timewe will be much more likely to get a usable end product.
Edit: Don't use this -- see my post on page 38 for updated version.
So acceleration has been achieved on the Intel HD 3000? This is incredible work. I'll try it out on my Early 2011 MBP soon.For anyone interested in the SkyLight/CoreDisplay wrappers, I've just finished a couple updates:
- Fixed logout/switch user (it previously just hung forever) by implementing SLSSessionSwitchToAuditSessionIDWithOptions() with a call to the older SLSSessionSwitchToAuditSessionID(), rather than just an empty stub function. It always uses the "cube" transition effect though for some reason.
- Stopped daemon PerfPowerServices from repeatedly crashing by exporting some string constants it was looking for (this noticeably improves performance by preventing ReportCrash from constantly starting, even though the actual daemon seems unnecessary).
- Stopped daemon universalaccessd from repeatedly crashing by creating a stub function that does nothing.
- Added a few other stub functions based on differences between symbol dumps (nm -gU) of the two SkyLight versions. As nothing was complaining about missing these functions, I'm not sure if this actually helped at all.
Please test and report any crashes if you can. Known problems:
- I'm having trouble reimplementing the function SLSSetDockRectWithOrientation() which means that the Dock won't "collide" with windows properly just yet. This is a fairly minor glitch, though.
- The option to auto-switch between dark/light theme will most likely not work since it calls a couple new SkyLight functions, which I have currently only implemented as empty stubs.
- Hopper Disassembler v4 crashes pretty frequently on the patched system... not sure whether it's caused by these patches or an incompatibility with Catalina itself. If someone on a supported Mac could test it, that would be great.
- I've experienced a couple times TextEdit freezing for several seconds. I'm not sure the cause.
- Photos crashing due to its use of Metal. This is unrelated to my patches but I'll look into a fix at some point.
I think that the stability of a system with replaced SkyLight is finally approaching usability as a daily driver!
Edit: Attaching the full wrapped frameworks rather than just the binary. As before, if you have working framebuffer, you should be able to just place these into /S*/L*/Frameworks and PrivateFrameworks to get full acceleration!
Edit 2: Look at all these apps being transparent and not crashing and stuff! Yay!
View attachment 842600
[doublepost=1560447307][/doublepost]Any hope for the older AMD cards (5000-series or 6000-series) in my unsupported 27" iMac? (Yes, I know Metal-supported GPU upgrades are possible. Just wondering.)