I've just done what is probably the best bang-per-buck eGPU implementation available. Here I avoid the performance and price pitfalls of Thunderbolt 3 (stupidly expensive eGPU > $269 enclosures && crippled 22Gbps bandwidth with a slow TB3 encoder/decoder) and instead have gone for a direct M.2 PCIe link with 32Gbps bandwidth. My eGPU adapter cost me US$12!!

Performance is mega. I play PUBG on middle setting with 70~80 FPS and no frame drops. A massive boost over the system's GTX1050Ti dGPU which is laggy in PUBG with many dropped frames. My implementation details are below:

Notebook

2017 15" Dell Inspiron 7567

i7-7700HQ 2.8GHz CPU

32GB DDR4 RAM

NVidia GTX1050Ti dGPU & Intel HD630 iGPU

FHD 1920x1080 LCD. I upgraded from a TN to an IPS panel.

120GB M.2 SSD relocated to 2.5" SATA drive bay via an enclosure. M.2 slot being used for my eGPU.

Windows 10 Pro

eGPU Gear

ADT-Link R43SL M.2 to PCIe adapter

Zotac Omega NVidia GTX980Ti video card

Enhance ATX 0260GB 600w 80Plus Gold PSU

Benchmarks, dGPU was disabled for eGPU Optimus internal LCD



Hardware Pics

Setting M.2 port hot plug enabled so can use a GTX10xx card



UPDATE>> Use nvidia-error43-fixer . It makes it no longer necessary to enable hot plug against the eGPU port

The M.2 port didn't have hot plug enabled which would mean I could not upgrade to a GTX10xx card due to a driver error 43 as described here.

So I followed this guide to enable the port #9 (M.2) port hot plug mode successfully. In my IFR file I acquired the 'setup_var 0xA64 0x1' commandline to do this with. Now I can upgade to a GTX10xx in the future.

Acknowledgement

Thank you to Nando4 for guiding me through enabling hotplugging & gathering the pertinent info for this guide

Parallel reddit discussion about this implementation

Is here.