
Running Games on a MacBook Pro with an EGPU - mef
https://justin.searls.co/posts/gaming-with-a-mac-plus-egpu/
======
ladon86
I know this is about games, but I wanted to relay my experience using an eGPU
(using the Razer enclosure and an AMD RX Vega 64) in a professional context.

I had a good performance boost using Photoshop and Maya. But if you're using a
portable MacBook Pro that you're connecting every day, I wouldn't recommend
it. The connect/disconnect experience is really flaky, and you'll probably
spend a few times a week trying to figure out why the eGPU isn't
connecting/disconnecting.

I switched to a Mac Mini at work (stock GPU build of course) with the same
enclosure and graphics card, and the experience has been pretty delightful. If
you're doing visual stuff, it's the budget version of a Mac Pro. It seemed to
improve overall OSX responsiveness too, but perhaps that's just the new Mac
Mini in action.

I still use the old MacBook Pro at home, but it's not my daily machine. Now I
don't have to carry a bag to work, and my home laptop can cover things in a
pinch. Using a desktop machine at the office for work has improved my work-
life balance, and my productivity.

~~~
9oliYQjP
I've been using an eGPU (15" 2018 MBP i9, RX 580, 10.14.x) for over half a
year and only ran into connect/disconnect issues once. If you're having
disconnect issues I'd urge you to see if killing the QuickLookUIService
process causes the eGPU to immediately disconnect. If it does, you probably
have a buggy QuickLook plugin with one or more apps. In my case there was a
QuickLook plugin from a recently installed trial app that was preventing the
eGPU from disconnecting. I uninstalled the app and everything went back to
normal. I've googled around and it appears like other people are also having
this issue with QuickLookUIService. Hope this helps.

I love my 2018 MBP + eGPU setup to the point that I chuckle whenever I see
people claiming how awful these MBPs are. I've finally reached computing
nirvana. The i9/32GB RAM in my MBP is powerful enough for me needs at home and
on the go. The eGPU makes for a great dock and access to a more powerful GPU
at home. It has built-in gigabit ethernet, an SSD, and several USB 3.1 ports.

~~~
knolan
The comment regarding QuickLookUIService is interesting. Not because I use an
eGPU but because QuickLookUIService is always reported as using significant
energy on my mid 2014 15” MBP.

This has encouraged me to dig deeper and to try to find the reason for this
once more.

~~~
9oliYQjP
I found my problematic quick look plugin by running ```qlmanage -m plugins```
and doing a hack binary search where possible. I identified 3rd party plugins,
assumed the problem was there, then disabled half of them by temporarily
removing the associated apps. It only took a few iterations over a couple of
days of casual use to pinpoint the culprit and the problem has not returned.

------
jacquesc
Loved this post. But I'd recommend to not try this at home. You'll end up
spending way too much money, and wasting way too much time.

Just grab a PC or console for gaming. Trying to game on a Mac is just swimming
upstream, without the payoff. Apple does not want you.

~~~
pifuoweiuf983
Not really.

Apple supports EGPU's natively, and they also have native drivers for AMD
cards.

Literally plug and play on MacOS.

On Windows, depending on which Mac you have it ranges from plug and play
(update drivers) to basically what the author wrote here.

~~~
vincnetas
Yes, but most of the games are on win, and egpu's on bootcamp are not so P&P.
Been there, done that. Lots of wasted time :(

[edit] especialy enoying "Error 12". As article mentions:

There is a really good chance, however, that you'll see a yellow exclamation
point over the GPU's icon, and instead of "This device is working properly",
you'll be greeted by "Error 12" and a message that the device doesn't have
sufficient resources (read: either memory addressing or bandwidth) to be used.
If you see this, your GPU won't engage at all, and you'll have to troubleshoot
it. There are a bunch of ideas in this thread, but what will work for you
depends on a combination of factors.

------
elif
Gaming on Mac is okay if you have a good time manually editing files with
magic strings from the internet to trick the OS into using an appropriate
resolution/refresh rate, and ultimately ending up with noticable input lag.

I went from gaming on a $6k mac pro to gaming on a $1k Alienware and realized
I'd been playing in the kids pool the whole time.

------
hamstergene
I would refrain from saying "gaming on MacBook" because it creates confusion
about whether one is using Windows or macOS.

When playing on Windows (Bootcamp) the MacBook is just a regular Intel based
hardware, the experience is no different from using any other laptop out there
(aside from Windows install process).

Playing on macOS that's another story. Mouse acceleration can not be disabled,
switching to and from fullscreen games is sometimes buggy, and not many
popular names are available natively on macOS.

~~~
jvzr
Tangentially, I know of killmouseaccel[1] which does exactly what it says:
disables mouse acceleration on macOS. However, it needs to be executed at
every restart, or deamonized.

[1]
[https://github.com/docwhat/killmouseaccel](https://github.com/docwhat/killmouseaccel)

~~~
frou_dh
SteerMouse, among other things, has a nice total bypass for it. Here, I am
just using the raw DPI and linear movement of my mouse:
[https://i.imgur.com/xEEjjVD.png](https://i.imgur.com/xEEjjVD.png)

[http://plentycom.jp/en/steermouse/](http://plentycom.jp/en/steermouse/)

They have a more focused product too, but I haven't tried that personally:
[http://plentycom.jp/en/cursorsense/](http://plentycom.jp/en/cursorsense/)

\---

As I understand it, Windows too has mouse-acceleration that remains (rather
subtly) even after disabling "Enhance pointer precision" in Control Panel.
When I was into competitive gaming, there was a Registry fix doing the rounds
that got rid of it completely.

------
minimaxir
The sheer frustration and potential undiscovered bugs of getting gaming to
work with a GPU on a Mac caused me to give up trying to game on a desktop.

Which is actually perfectly fine unless you need 4k60fps or 1440p144fps, which
I do not. I originally started gaming on the PC a decade ago when many games
and sales were PC only: the gaming market is at a place now where the game
selection and prices between consoles and PCs are similar. There isn't
anything on a PC/Mac I'm missing that I can't get on my PS4 Pro (or even a
mobile device!).

~~~
mhh__
FPS games are a joke on console, if you're into shooty shooty bang-bang type
games.

In fairness, gaming has never (Last decade at least...) been the intended
purpose of Mac

~~~
Lowkeyloki
I don't know if they're a joke. There are quite a few players out there who
seem to like it just fine. But I, on the other hand, am absolutely a joke
trying to play FPS games with a controller. I need a keyboard and mouse or I
can barely play at all. There are ways to hook up a keyboard and mouse to some
consoles and some games, but it's generally considered "cheating".

Doesn't matter anyway. My reflexes aren't what they were when I was a
teenager.

~~~
baroffoos
From what I remember, console fps games will snap your aim on to targets
because its next to impossible to properly aim with a joystick.

~~~
derefr
I feel like auto-aim has always been kind of a sad hack, in that it's done on
consoles but not on PC, so it effectively isolates console multiplayer from PC
multiplayer.

I feel like a more "proper" solution would be to come up with shooty-shooty
bang-bang game mechanics where "ability to aim with finesse at the things
you're shooting at" is mechanically irrelevant, so that "aiming at things"
isn't really a part of the console _or_ the PC experience. I.e., design the
game so that, despite complete ignorance of your input method, there is still
absolutely no advantage in using a mouse compared to a joystick.

Any ideas on how such a thing could be accomplished?

• Maybe a game could snap all the _people_ to a 3D voxel grid. You'd move
smoothly, but your "shadow" would always exist within a certain voxel; and
you'd always see everyone else over the network as popping between voxels. To
shoot someone, you just have to target the right voxel.

• Maybe a game could give people, instead of hitscan _line_ guns, extruded
hitscan _beam_ weapons of some diameter. Everyone is blowing 1m-wide holes in
one-another [and the terrain] with giant laser cannons. I'd play that!

~~~
stordoff
> I feel like a more "proper" solution would be to come up with shooty-shooty
> bang-bang game mechanics where "ability to aim with finesse at the things
> you're shooting at" is mechanically irrelevant, so that "aiming at things"
> isn't really a part of the console or the PC experience

The thing is, even if you remove the finesse, mouse may well STILL have an
advantage. I can whip a mouse around to do a 180 far quicker than I can on a
controller.

------
outworlder
Now if only Apple stopped crippling OpenGL in an affort to push Metal, maybe
we would get better games.

This is Microsoft's playbook from a couple of decades ago.

~~~
skocznymroczny
OpenGL is in maintenance state on all platforms basically. The only
alternative they had was Vulkan. And Vulkan is not perfect either. Personally
I prefer Metal to Vulkan. It's very easy to transition from OpenGL to Metal,
it feels like an improved API without global state and packing stuff into
structs. Meanwhile Vulkan opens the whole low-level can of worms on you and
you suddenly have to worry about memory barriers, image transitions,
semaphores/synchronization, even in the simplest of applications.

~~~
Crinus
> OpenGL is in maintenance state on all platforms basically.

The OpenGL 4.6 spec was released four months ago with new features and
extensions come out all the time.

> Vulkan opens the whole low-level can of worms on you

Vulkan's API is unnecessarily ugly, it gives the impression of a low level API
with all the structs and such but in reality the driver just picks up data
from those structs to move around. In real low level APIs you use structs
because they are memory mapped and/or aligned pretty much as the hardware
expects it, but Vulkan is a hardware agnostic API.

And yeah, Metal is probably a better API but it is also only available on Mac
which makes it a no-go for pretty much everyone outside the Apple bubble.

Personally i'll stick with OpenGL for the time being. I do not need much of
the fancy stuff newer OpenGL versions have anyway (i don't do AAA-game level
rendering) and i do not see OpenGL being dropped any time soon from any sane
platform.

When it comes to Apple's stuff i'll decide between writing a small OpenGL
wrapper myself for the functionality it use or just dropping the platform
altogether when the time comes and they drop support for the API. Considering
they still support Carbon (even if only for 32 bit programs), it might be a
while until they drop OpenGL though.

------
nottorp
Why does no one bother talking about eGPU behaviour with mac native games?
Believe it or not, there are a few.

~~~
rocky1138
Probably because it's the wrong tool for the job. If you want to play games, a
Mac is easily one of the worst ways to do that.

The eGPU method of bolting functionality onto a platform which doesn't want it
is only neat on a technical level at best. It is essentially the world's
biggest dongle.

~~~
CharlesW
> _The eGPU method of bolting functionality onto a platform which doesn 't
> want it is only neat on a technical level at best._

It's neat on every level. To quote the article:

> _" …you are now able to take a top-of-the-line gaming GPU, seat it inside an
> external box, plug that box into your computer, and—using a single high-
> bandwidth cable—push the necessary instructions to render 4K games at 60
> frames per second on the card before (over the very same cable!) pushing
> those frames back to your notebook's built-in monitor without introducing
> any perceptible latency."_

I know God intended for us to use PCI cards by opening up cases and inserting
them into slots on a motherboard, but it's incredibly cool to be able to just
plug one in like a USB device.

~~~
owenwil
But "just plugging in one USB device" wasn't even what happened in this post.
The amount of steps described inside literally were 10x what it takes to just
build a PC, boot it, install games and play ️

~~~
mercutio2
Huh? There were two steps to get macOS working.

    
    
      1) Put GPU in enclosure
      2) Plug Thunderbolt 3 cable into enclosure and MBP
    

Perhaps you’re referring to the novel written on how to make BootCamp Windows
work with the eGPU?

~~~
owenwil
...all of which is because the drivers/config are proprietary

------
Shihan
I had a eGPU box with a GTX 1060 for months, but was using it for Windows 10
and a zbook 15 notebook. Unfortunately there is no Mac support for NVIDIA but
some users get it working themselves - never tried it as it looked a bit to
cumbersome for my taste. On Windows 10 the setup worked great. Was able to
play games like PUBG or Quake Champions with decent (Medium) settings at Full
HD and a reasonable framerate (I believe usually 70-90 FPS). But in the end I
decided that I wanted to switch away from Apple and also sold my Laptop to buy
a Desktop PC with more horsepower. My wife still has a rather new MacBook Pro,
so if I want to fire up some Final Cut Pro or Garage bend I could still do it.
Was not sure if the whole setup of eGPU was worth it for me, it surely allowed
me to play those titles which were not playable without the eGPU but I believe
it would have been wiser to spent the money directly on a new PC. But of
course, with switching away from the Mac my case is a bit special.

------
Shivetya
A very nice how to. For some good real world numbers I always look to
[https://barefeats.com/](https://barefeats.com/) which has been testing eGPU
setups for quite some time on different Macs

------
forrestthewoods
I’ve yet to see an eGPU review measure latency. I’ve always been skeptical of
their ability to render frames out with adding meaningful latency to the
system.

I know it’s theoretical possible to work just fine. But it’s a long pipeline
with lots of opportunity for inefficiency and connection bugs.

I love my 144Hz gaming monitor on my desktop. I’d be thrilled to connect my
laptop to an eGPU if it can produce an identical gaming experience.

But my spidey sense says eGPu’s are a convoluted buggy mess. And that’s
unlikely to change in the foreseeable future due to lack of users.

------
kkarakk
Can anyone chime in on WHY apple doesn't care about the gaming segment? Is it
just elitism from the design/dev team or do they truly think no one wants to
game on a mac? It's strange behavior for a company.

~~~
vnchr
I wonder how much of it is history. Steve Jobs initially rejected the idea of
gaming on the iPhone. They opened their arms only when mobile game revenue
became impossible to ignore.

~~~
slavik81
"The truth is Steve Jobs doesn't care about games. [....] He's not a gamer.
[....] It's difficult to ask somebody to get behind something they don't
really believe in. I mean obviously he believes in the music and the iTunes
and that whole side of things, and the media side of things, and he gets it
and he pushes it and they do wonderful things with that, but he's not a gamer.
That's just the bottom line about it." ~John Carmack (2008)

------
servercobra
I've been using an eGPU for about 6 months now with my 2018 13in Macbook Pro
and I love it. It drives my 4k monitor so much better for work tasks, and
gaming is fun.

The only issue is the eject never seems to actually work, so I just unplug the
eGPU every time rather than safely eject. It's a bit annoying to have every
app reboot when unplugging. I'm hoping the next version handles it a bit
better.

One change I've made from the article is installing Windows on an external M2
drive over USB-C (I don't believe it's Thunderbolt, just standard USB) because
my Macbook was running out of space between Windows and MacOS..looking at you,
Ark and your ridiculous 100GB install with another 100GB of scratch space
required to update.. Everything seems to work at full speed!

~~~
9oliYQjP
In case it helps, you might want to see my comments about QuickLookUIService
preventing seamless eGPU disconnects here:
[https://news.ycombinator.com/item?id=20340602](https://news.ycombinator.com/item?id=20340602)

------
bitL
This NVidia stuff is getting ridiculous. Apple basically killed off any Deep
Learning enthusiasts and nobody could do any serious computing-intense stuff
on their platform. A polished toy.

~~~
wjakob
The extra-painful part about this whole situation is that it's apparently only
due to Apple blocking NVIDIA from signing and publishing their drivers. (for
whatever bizarre reason they may have to do that)

~~~
soganess
I know it stinks for the people who are acustom to Nvidia's workflow, but it
is quite hard to feel bad for Nvidia. A bigger fish is doing to them what they
do to smaller players.

Nvidia blocks the Nouveau drivers from working properly on Maxwell2 or newer
cards:
[https://www.phoronix.com/scan.php?page=news_item&px=Nouveau-...](https://www.phoronix.com/scan.php?page=news_item&px=Nouveau-
XDC2017)

~~~
judge2020
Related:

[https://news.ycombinator.com/item?id=18834715](https://news.ycombinator.com/item?id=18834715)

------
toxik
Now if only Apple and AMD could come up with a good way to write GPU-
accelerated programs like CUDA lets you...

~~~
fwip
They named it OpenCL.

~~~
mrpippy
Apple's support for OpenCL is deprecated as of 10.14. Metal is the supported
way forward.

~~~
baroffoos
OpenCL is what the rest of the world uses and will continue to use. All this
means is many programs will drop mac support like they have already done and
some will be created as mac exclusive because no one wants to support both.

~~~
vernie
It seems like the rest of the world uses CUDA.

~~~
baroffoos
That was what I remember being the case years ago. I used to be tracking the
progress of the blender project ans they where making some good progress on
getting everything running on OpenCL because it works on all cards.

------
mastazi
The writer is pretending that egpu is some sort of hidden secret that no one
wants you to know about, I don’t understand why - since this is not the case -
many companies are actively marketing egpu solutions.

It also falsely presents egpu as a silver bullet, in particular it claims that
there is no latency even when using the laptop’s built-in monitor (as opposed
to an external monitor plugged into the GPU) which is absolutely not true (an
external monitor will perform better).

Many reliable sources have published independent benchmarks comparing the 3
solutions (internal gpu, external gpu over internal monitor, external gpu over
external monitor) you should look at the benchmarks in case you want to make
up your own mind about this topic.

~~~
robotresearcher
Quoting the article:

“Why an external monitor? While both macOS and Windows can "loopback" frames
rendered by the eGPU over the cable and onto the computer's built-in monitor,
operating system support for this is very recent and it introduces a nonzero
bandwidth cost which can result in lower framerates as well as frames being
dropped.”

~~~
mastazi
Fair point, there is another section of the article that seems to suggest
otherwise, but this section that you quoted addresses it so I take my comment
back.

------
rarecoil
Not brought up here, but the Apple Thunderbolt 2 -> Thunderbolt 3 adapter is
one of the only ones that actually works in _reverse_ , too. With some hacks
from eGPU.io, I ran an Nvidia GTX 1060 on a Mac Mini for a while over TB2 for
hashcat work.

~~~
timeimp
I have a mid-2013 MBP with TB2. If I get a TB2 -> TB3 then this should work
ok?

~~~
rarecoil
It should. You'll need to run a script such as this:

[https://egpu.io/forums/mac-setup/script-enable-egpu-on-
tb1-2...](https://egpu.io/forums/mac-setup/script-enable-egpu-on-tb1-2-macs-
on-macos-10-13-4/)

------
whytaka
I gamed a bit on my previous MBP, a 15" from 2012. The CPU and GPU got so hot,
I suspect it reduced the lifespan of the laptop battery. Does anyone else have
concerns about this for gaming on laptops? Would unloading to the EGPU
mitigate this issue?

~~~
Marsymars
This was a concern for me trying to play ~2005-era games on macOS on a 12"
MacBook. One of the reasons I offloaded to Steam streaming and stream from my
Windows HTPC now.

------
antimatter
Anyone know the type of mouse being used in the photo?
[https://justin.searls.co/uploads/egpu/IMG_4122.jpg](https://justin.searls.co/uploads/egpu/IMG_4122.jpg)

~~~
LurkerAtTheGate
Looks like a J-Tech Digital V628

------
TheRealDunkirk
I tried this with a Mac eGPU Dev Kit and a 2014 MBPr... right before they
removed the ability to run it with a TB2 cable. Jerks. Anyway, the amount of
hassle with trying this is high, and I say that as someone who ran Linux on
all my desktops and servers from '94-'14\. Installing Windows on Bootcamp to
do this? That's a hard pass from me, dawg. I'm done with Windows. Even for
gaming. It's all Mac-native or Playstation for me now.

------
jammygit
What’s the easiest way to turn your desktop to a Remote Desktop for ssh (eg,
to run ml models)? The dynamic ip is the only weird part. Which service or
solution do people use?

~~~
figiel
Not sure if I understand the issue completely but if you have problem with the
dynamic IP addresses in LAN and don't want to fix the addresses you can use
.local domains (this works in Apple and Linux worlds, in Windows you need
LLMNR), i.e. connect to yourhostname.local instead of
192.168.x.somerandomnumber.

------
writepub
Apple doesn't seem to have it's ear to the ground. Ever since windows 10, the
software and design advantage Apple had over PCs has arguably narrowed down to
irrelevance.

Windows today boasts of good design, higher security than previous versions, a
Microsoft supported full blown embedded Linux (WSL) and a much larger
selection of apps/tools

It all comes down to specs and build quality in 2019. If one is paying top of
the line for Apple, they better ship decent spec-ed hardware, including GPU

------
afturner
I follow Justin on Twitter and just wanna say he's awesome

------
simonCGN
Is a eGPU setup sufficient for running a Oculus Rift S?

