System specs (model inc screen size, CPU, iGPU, dGPU, operating system which eGPU is being used)
I own a HP ProBook 450 G5 laptop with the following configuration:
- cpu: i5-8250u, 4 cores, 8 threads, 6MB cache;
- ram: 2x8 GB DDR4 2666@2400 MHz, working in dual channel mode;
- m.2 nvme ssd A-data + 1 TB internal hdd;
- integrated Intel UHD 620 gpu;
- dedicated Nvidia 930MX gpu, 2GB DDR3;
! - this model does NOT have a Thunderbolt® connectivity - !
eGPU hardware (eGPU enclosure, video card, any third-party TB3 cable , any custom mods)
That is why I have used the all known an "famous" Internet store and ordered the following stuff:
- an EXP GDC 9.0b, using the NVME port. Price: about $60.
- a NVME extender cable (30 cm.). Price: approx. $23.
- external USB SSD enclosure Orico, capable of connecting to USB 2.0/3.0/3.1/Type-C ports (very fast transfer speeds by the way). Price: $22.
From a local web stores:
- Asus GTX 1060 3GB DUAL. Price: $160.
- some Omega branded PSU with 450W of power. Price: $18.
- gpu power supply cable. Price: $4.
- 960 MB SATA3 SSD A-data. Price: $116.
Installation steps (what did you do to get it all going?)
- I have updated the bios to the latest possible;
- I have disabled all virtualization related options, as shown on the attached image;
- I have disabled the "boost converter*" option, as shown on the attached image.
- Great performance boost: Remove PhysX!
- Launch "Task manager", then start a game. Then Alt+TAB to bring Task manager to the front and go to "Performance" tab. Usually one of the cores has 100% of usage - remember it (usually it is the first one - CPU0). Go to "Details" and right click on the game you play at the moment. Then chose "Set affinity" and from the dialogue box untick the core you remembered earlier. Than go back to the game - the fps is much improved. Sometimes if you disable more threads it leads to a better results, but it is rarely the case. Usually disabling only the first (or the one with the biggest load) solves the issue.
These moves made all of my games** to go from stuttering 30-40 fps to butter smooth 60+ fps on Ultra settings.
* - Boost converter is a very interesting option, that during a more intensive task allows the CPU to drain additional power (for a short time) from the battery of the laptop, when the power supply current is not enough. For some unknown reason a big amount of the fps stuttering and dropping problem was solved by disabling this option.
** - Far Cry 4/5/New dawn, Shadow Warrior 2, Tannenberg, Battlefield 3/4, Spintires
Comments (eg: how has the eGPU improved your workflow or gaming)
This GPU configuration suited me well for quite some time. Most of the recent titles (more than 2 years older from now) have been played well on the dedicated gpu (930MX), using resolutions between 900p (FarCry 2 and 3) and 720p (Battlefield 3/4, FarCry 4/5/New Dawn, Shadow Warrior 2, Tannenberg), using graphical settings between NORMAL (MIDDLE) and LOW, again depending on the game. The refresh rate (using the same dependencies and settings) goes up to 40-50 fps in older games and down to 22-26 fps for the newer ones. I have also tried to overclock the dedicated gpu, but all I could achieve was 50 MHz for the core and 70 MHz for the memory. The main limitation was the cooling capability of the laptop in general. This "overclock" lead to no more than 1-3 fps improvement, depending on the game and the settings. Bud 2 fps (average) over 23, when you try to achieve at least 28-30 is nothing.
That is why I, as well as many others, have heard that there is some magic piece, that you can stuck inside some free laptop port or slot. At the same magic piece you could stuck any random by choice (but not exactly) and much powerful GPU than the one you are stuck with after the laptop purchase.
That is why I went to dig for some information. Long story short, I had to decide which one I have to give away - the speed of the SSD or the connectivity of the factory installed WiFi adapter card. I gave it a short thought (which is very hard :p ) and decided to keep the WiFi adapter (which, by the way, is x1 mode) and to take advantage of a bit faster NVME (x2) adapter. But what should I do with the decommissioned SSD and most of all - would I cripple the system again, by leaving it with much slower and yet more reliable hard disk drive?
Before I continue, someone of you probably would ask "This laptop is 2 or 3 years old model. For eGPU setup you gave the same amount of money you would give for a model with a more powerful dGPU (before the "so called" pandemic, the PC and laptop prices were lower). Couldn't you just buy a more expensive model?". "Well, no, for a number of reasons" would be my answer. "And I do not want to give away the 8-14 hours of battery life!" I would add.
So here it is. All the parts are in place, assembled anf waiting. The Windows is a fresh install to be able to work with the new SSD. The Acronis image is ready in case the things go south, pardon my french.
After several hours of experiments we almost got along with the new configuration. I have used driver version 384.94, downloaded from the official ASUS web site. The dGPU 930MX was disabled from inside the BIOS.
I have tested the new configuration in few games.
The first was FarCry 5. The settings were the highest possible (ultra), the resolution went from 720p to 1080p. The test was performed uwing the built-in benchmark in "Video" section. The result was 31-43 fps with noticeable "fps drop" and "fps stutter". From several dozens of tests there were only 2 or 3 times when benchmark went smoothly with fps between 35 and 48. It was the same when I tried to play the game - only one or two times of all the gameplay was smooth, even with only 39-45 fps. I have discovered that if I lower the settings as an attempt to increase the framerate, the card somehow begins to "loose" performance and the frames per seconds are actually dropping as well (odd?!). That is why I kept everything maxed out, except for the antialiasing - it was the only setting that had some positive effect after reducing it.
With the New Dawn the results were similar. I have decided that both games are not so well optimized or the reason resides in the GPU driver or some system setting.
I hit the "books" again. I have stumbled on everything possible: pcie power management settings, NVME timeout setting (I'm using the same port after all), registry hacks and settings, anything. I have found something I had never heard before that moment - something, called Nvidia Optimus (nothing too serious - dual gpu system management). Optimus is present in Windows 10 by default (it is a dual gpu pc after all), so I have exluded this as a possible reason. I have found out about the PCIe compression algorithm by Nvidia. But I also understood that it is only used at x1 systems, to compensate the lack of enough bandwidth. And is not used in x2 (mine), x4, x8 and x16 based PCIe systems. This was the next straw I catch and dig a little deeper into the web. Several forums reported that there is a reverse compatibility between the different Beast docks and their cables. That is why, with a certain amount of risk, I have opened the same "famous" web store and ordered only a single cable for the beast but with a NGFF connectivity, hoping to use it with my (double hdmi) nvme m.2 beast. I have also spotted and favorited 2 more pieces of hardware. One of them was a nvme to ngff adapter card and the other was a m-f antenna extender cables. I was hoping to use my original WiFi adapter, but inside the adapter mentioned above and keep the "built in" connectivity, instead of using an USB based wlan adapter. The antenna extender cables I would've stuck inside the laptop case to extend the original ones to the new position of the WiFi card.
By the way, before ordering the cable, I have tried the same titles on external monitor also (my LG FHD tv). I have tried everything - settings, power supply management tweaks, even full iGPU disable and working only with an external screen. There was no change and the framerate remained the same.
Needless to say that the cable is ordered 5 days ago and I'm still waiting for it. I on the other hand have almost completely gave up trying to get the things working as they should.
Despite of that, 2-3 days ago I have tried also the other games - Shadow Warrior 2 and Battlefield 4, again with everything maxed out. what was my surprise when I saw a framerates between 50 and 86, again with the mentioned fps drops and stuttering. But the conclusion was interesting: the GPU is more than capable of rendering these not-so-lite games (imho Shadow Warrior 2 has much more complex and heavy graphics than FarCry 5) and most important of all - the x2 pcie had the necessary bandwidth.
I have diged much deeper at the known and unknown and unknown forums. After I have found nothing else that could throw me some bone, I have decided to do the last thing that remained. To poke inside the BIOS a bit deeper.
And I have succeeded to solve my problems!!!
At the moment with the FarCry 5 and New Dawn games I have an almost stable 50+ fps, without stutter and dropout. FarCry 4 is still untested. At Shadow Warrior 2 and Battlefield 4 I have stable 60 fps with v-sync enabled (95% of the time) and 55-88 with v-sync disabled. All the games are set to 1080p, maximum possible settings (in some of them without antialiasing). Everything is playable on the internal laptop screen, completely without the need of external LCD.
As a bonus, in addition to the images with the options that helped me solving the performance issues with my eGPU setup, I will leave and additional photos of the opening I had cut out from the original HDD and SSD enclosure, using a sharp knife and a steady hands. I wanted to keep the good look of the bottom when I decide to take my laptop on travel with ejected eGPU adapter cable.
Greetings to you all and good luck with your own eGPU setups.
Q: Some game asks for some dx*_XX.dll (* - a random filename; XX - a two digit number). What should I do?
A: Reinstall DirectX 9 or DirectX 11.
Q: Nvidia control panel disappeared after DirectX reinstall.
A: Reinstall the last used driver and restart the laptop.
Q: Unusual frame drop and low fps after driver reinstall in Windows 10.
A: Reinstall DirectX End-User Runtime from web installer.
Q: Are there some more tweaks I could do to increase performance?
A: Not proved to be useful, but you can try to set the following parameters:
a) [NVIDIA control panel] maximum prerendered frames - 1
b) [NVIDIA control panel] Power management mode - Prefer maximum performance
c) [Power options] Disable PCI Express power management
d) [Power options] Increase NVME Idle Timeout to 10 seconds (10000 milliseconds) while plugged in.
e) [Device manager] System devices - High precision event timer -> right click: Disable device
Q: How to enable NVME Idle Timeout (at Windows 10 Power Options)?
A: Run DOS console (cmd) as administrator and paste the following string (followed by Enter and PC restart):
Q: Blue screen of death with "Video TDR Failure" reason.
A: Reinstall Intel GPU driver and control panel (worked for me).
Q: GPU fan(s) start and stop at random intervals, but I had quit the game a few minutes ago. Also sometimes the mouse lags as well.
A1: Check for process using the eGPU from Nvidia GPU activity monitor at the tray area. Set GPU application use properly in Nvidia control panel.
A2: Log out/Log in or restart the computer.
Thank you for your build. Indeed, the NVME M.2 port is limited to x2 rather than x4 width. The CPU has up to 12 PCIe lanes. Your system is only using 8 lanes as shown below (SRC: https://bugzilla.kernel.org/show_bug.cgi?id=202367 )
0:1c.0 (port1), x4 -> dGPU
0:1c.5 (port6), x1 -> wifi
0:1d.0 (port9), x2 -> NVME SSD
0:1d.3 (port12), x1 -> card reader
It's unclear why HP didn't wire up x4 lanes for the NVME SSD. This info is left here in case anybody is wondering if they can unlock the BIOS to get x4 performance. Answer is no. HP Would have had to use port7 or 8 to host the card reader to allow port9 to function as a x4 port.
Another tip that may help you discovered in the Elitebook G5 series, also with a 8th-gen U CPU. The early system BIOS allows you to increase the TDP of the CPUs and turbo boost duration using Throttlestop or Intel XTU. There I it would boost up to 44W. Later BIOS was locked down, presumably a measure done by Intel to promote purchase of their newer Intel CPUs to increase performance.
The benefit was seen in 3dmark Firestrike where physics (CPU) score from 8k to 11k.
If you can, pls post a highlight photo of the system, eGPU and attached LCDs.
I have already tried Intel XTU to experimentally increase the TDP to optimum allowed (45 watts), but it gave me no noticeable change. I did not wanted to mess arround with other settings. The funny thing is that even without tweak with Intel XTU, HP have decided to give my laptop an ability to hold 3.4 GHz (turbo frequency) on all 4 cores (tested with several 3rd party bench apps), while most of the PC review and benchmarking sites are reporting that the same is possible only for 2 of the cores and 2,8 GHz for all of the cores.
p.s. My system is without external screen. It is only with external graphical processing, but entirely on the internal laptop display. Right now it is "Frankenstein style" - everything is next to the laptop and without a case. I'm working to make one, but i goes slowly.