It’s been a while since I blogged on kamshin.com – especially since I’ve decided that all technical / industry news content would move over to TECHunplugged.io for consistency / audience reasons. But enough self-flagellation, and onto this burning topic (no pun intented).
Those of you who follow me on Twitter have seen nothing else in the past few weeks than complaints about the MacBook Pro, instead of the usual content they’ve been accustomed to.
In fact, this issue has been so annoying that it has almost brought my content creation activities to a halt, and that’s why I’m going to write about it in the foolish hope to conjure the curse.
Let’s start with enumerating my setup, and the tools used, for the sake of clarity. It should be noted that most of the testing done was empirical.
The laptop is an almost high-end MBP 16″. It runs with Catalina 10.15.6, a much needed update after incessant crash issues caused by its predecessor, 10.15.5 (crash upon wake). The laptop was previously used with migrated data from my previous MacBook Pro. Around 21st July 2020, I proceeded with a system wipe and a clean install to ensure issues would not be related to apps / settings interfering.
In addition to the laptop, I am using an external display (AOC Q2790, QHD, at 2560×1440). This awesome monitor worked flawlessly with my previous Early 2015 13″ MacBook Pro via HDMI, and also works without any issues with two corporate issued laptops: an HP EliteBook x360 1030 G3, and its predecessor, a Lenovo ThinkPad T440.
Because of HDMI issues with the USB-C / Thunderbolt MBPs (flickering), I went with a Uni USB-C to DisplayPort cable. From a video quality perspective, this cable turns out to be sturdy, elegant and without issues.
I am also using a Satechi Aluminium USB-C Hub to connect older USB devices. The only device which is permanently plugged to it is my Logitech C925 webcam, although I’ve kept the Satechi mostly unplugged in my recent quest to fix thermal issues. No other devices are plugged on the MacBook Pro.
It should be noted that both the HDMI and DisplayPort outputs on the Satechi hub cause flickering issues, which is why using them is a no-go.
I use the MacBook Pro mainly in clamshell mode. I tried using it with the lid opened, but I find it impractical for several reasons, one of which is cats having an unnatural affinity for keyboards and laptops.
The laptop lies flat on a wooden (bamboo) table. Lately, I’ve put something under the laptop (the unused Satechi hub) to raise it at an approx 5° angle to improve airflow. I tried to use it vertically, although it didn’t provide any significant changes.
Laptop is powered at all times via the standard provided 96W USB-C Power Adapter. This is a pre-requisite to use an external monitor with clamshell mode. Monitor is powered separately.
Because this investigation has been quite a journey, I’ve relied (and still do) on several tools to keep the MacBook Pro under control and monitor it appropriately. Most of these utilities are shareware, which I happily paid for.
TG Pro – used for thermal monitoring and controlling fans. My current setup is as follows:
Volta – this utility helps disable Intel Turbo Boost, but is also useful in limiting the amount of watts that can be drawn by the CPU.
SwitchResX – this utility allows to use custom screen resolutions when an external monitor is connected. This is a find from the MacRumors Forums, where someone suggested changing the display mode to reduce watt draw from the discrete GPU (Radeon Pro 5300M). We’ll get on the reason why later on.
iStats – used to monitor power draw from individual components, notably the discrete GPU power draw.
Intel Power Gadget – this Intel utility is great to monitor the CPU usage and see demand vs how much is delivered.
Symptoms & Problems
First of all, the 16-inch MacBook Pro has been from the start a quite noisy laptop. This was annoying but acceptable as long as there was no negative impact, i.e. no lag, no system bogging down to almost a halt.
It seems that the situation started worsening around March 2020, which would coincide with the release of MacOS 10.15.4. This is empirical evidence based on my appraisal of when things started to go wrong.
From a system monitor perspective, a process called “kernel_task” would start using up to 1000+% CPU cycles, a search indicated that this was related to a system process used by Apple for thermal throttling, faking the use of CPU cycles to reduce thermal pressure.
But it wasn’t enough. Why would this beast of a laptop, with large fans, and sold by Apple’s marketing videos as having a greatly improved cooling system keep on overheating? And why would the computer bog down once the external display was hooked to it? Surely, a top-of-the-line core i9, decent RAM and GPU would be able to tackle mundane tasks such as running Office programs and Google Chrome?
Unfortunately, it seems that several design decisions are playing against us. The Intel U630 graphic adapter is used only when no external monitor is plugged. Once an external monitor is plugged, the discrete GPU takes control. There is apparently no way to override this and is therefore to be considered as “by design”.
Using the built-in display resolution, the Radeon Pro will constantly draw an approx 18W. Some users report this constant elevated draw as either a bug, or a consequence of Apple using a specific graphic subsystem (some speculate it might be due to using gmux). Others report a drop in watt draw when using a higher frequency (120 Hz), but my external monitor is unfortunately stuck at 60 Hz.
Perhaps, the worst decision of all was to believe that the thermal profile of the 16-inch MacBook Pro would be sufficient when used standalone, without taking in consideration external displays. To Apple’s defence, they claim that their MacBook Pro can support multiple 5K displays, so maybe there’s a compatibility issue at play.
Or, put more plainly, putting a high-end CPU (Intel 9880K) with a TDP of 45W alone, and a Radeon Pro 5300M with a 50W TDP into a small enclosure powered by a 96W adapter (notwithstanding all other system components such as RAM, NVMe SSD etc.) would inevitably lead to some issues or compromises.
The first noticeable impact is a noisy laptop which feels like an Antonov 225 readying for take-off. Some applications can exacerbate this, for example recording the Gestalt IT Rundown last week almost melted the machine (open the link, video stops streaming at 27:53 due to overheat).
Another key area is gaming. Now you can crucify me, I know MacBook Pros (and MacOS in general) isn’t the best gaming environment. But sometimes you’ve got to do with what you have.
To evaluate performance, I’ve gone with FPS settings on a game called World of Tanks (WoT). The empirical disclaimer from the post beginning applies here too. Even more so, WoT isn’t a native MacOS application, it uses a translation layer from Codeweavers that is built on top of wine if I’m not mistaken, so it’s kind of translating native Windows code/calls into POSIX calls (to make it roughly simple).
So, using WoT without an external display gives approx 60 FPS, while using it with the external display bogs the machine down so much that it becomes unplayable after a couple of minutes (even after implementing several changes, see below).
What Was Attempted
This has been an extremely bumpy process, with a lot of trying involved, reading countless pages of support forums, reddit posts, watching endless amounts of YouTube videos. There hasn’t been one formal solution, but several directions were explored.
Fans & Thermal Control
The first direction was to find a way & improve how fans work. This was done with TG Pro (Figure 2 at the beginning of this post), with gradual kick in of the fans (from 25% to 100% in 25% increments) as the temperature increases by 10°C steps. This, complemented with specific TG Pro features (using AutoBoost and Thermal Throttle Fix), ensured a better cooling of the MacBook Pro.
The second direction was to limit overheating, i.e. keep the CPU under control. This was partially achieved by disabling Intel Turbo Boost and by limiting the watt intake of the CPU to 50W (I am still experimenting with lower limits). The power limit will scale the Max Frequency of the CPU, which can be seen in the Intel Power Gadget (refer to Figure 6 at the beginning of this article).
Investigating Display Setup
Changing the profile on the fans and on the CPU proved to be a great help when the 16-inch MacBook Pro is used standalone, providing even better battery life and a quieter experience.
It however had no impact on the thermal profile and performance issues of the MacBook Pro once an external display is connected to it.
Upon a discussion with my friend & business partner Arjan Timmerman around the issue (this 4,000+ USD Macbook Pro is one of our company assets) and potential solutions, Arjan mentioned his 27″ 4K display. He uses it with his own MacBook Pro (an earlier model, either 2018 or 2019 15″), and how he connects it via USB-C to USB-C without issues.
This drove me to explore whether using a different cable or different display resolution wouldn’t be a solution to the problem. A YouTube video went long and large about using different cables, but didn’t fundamentally come to a conclusion as to what is the best way to use an external monitor with the 16-inch MacBook Pro without making the fans go postal and without turning the machine into an expensive aluminium cooker to fry eggs.
What struck me instead was a comment pointing to this MacRumors Forum post.
Fixing Display Power Draw with SwitchResX
As described in the beginning of this article, SwitchResX is a utility that allows ample customisation of resolutions and display modes.
Some of the forum posters indicated that using a custom resolution with GTF (an older VESA standard for display timings) instead of the default modes would lower the Radeon Pro watt consumption. Most people reported a significant drop from 17-18 W to 5-7 W.
Using this mode also had a similar effect on my own 16-inch MacBook Pro, reducing consumption to the same reported range of 5 to 7 W. An additional FPS test in WoT with this custom resolution provided a consistent 55 to 60 FPS.
Keeping SwitchResX enabled, I then tried to see if keeping a low power draw on the Radeon would enable me to return to system defaults for the fans as well as CPU.
I enabled System control of the fans in TG Pro, then switched over to Volta, where I enabled Intel Turbo Boost and disabled the 50W limit for the CPU. The result was a catastrophic mess, with WoT running at best around 20 FPS, and dropping to 2-5 FPS as soon as some action would take place.
Upon this unsuccessful attempt, I returned back to my previous configuration, let the machine cool down, and re-tried WoT. FPS were back to 55-60.
Bonus Section 1 – Apple Support
Because this machine is under warranty, I engaged Apple Support to troubleshoot the matter, providing them with detailed feedback. The first attempt was the usual “let me explain you how resetting SMC / NVRAM is the solution to all of humanity problems”. I acquiesced for the sake of following the procedure.
After reinstalling my system and thoroughly investigating, a second call resulted in “you have to turn in the machine to an authorized repair center for examination”. There is no way to return this machine back for an exchange, having owned for now 6 months.
Conclusion … No Burning Bridges?
I would love to conclude this lengthy article with good news, however this activity is pretty much an ongoing investigation with no end in sight.
All of these attempts emerge from one single purpose: understanding if the issue affects only me (using for example a bad monitor, or the wrong cable), or if this is a more systemic issue affecting high-end 16-inch MBPs.
The fact that one has to run several utilities to fine tune a machine of this specs, cost and caliber is so incredible that it feels almost ridiculous. There will always be someone to counter that “Macs are expensive”, that a desktop would do a better job, etc.
My take on this is that using external monitors with laptops is everything but a novel idea. It has been used for many years, with success, and without thermal issues, at least on the PC world.
Mac users, especially MacBook Pro users are generally professionals looking for a predictable user experience. Those users require power and mobility, but also the ability to use their machine as a workstation.
Frustration has led many customers to return their MBPs and the issue isn’t certainly new to Apple. Apple should have the courage to investigate what is wrong with those models and come up with the necessary actions, whether software fixes, hardware returns, or a settlement with the impacted customers.
The MacBook Pro has been a great platform, but I do feel the heat of it, and I don’t want to burn bridges with Apple. I do hope that they’ll release a hotfix, or take this burning issue head on and treat it for the hot potato it is.