My NVIDIA GTX 1060 (6GB) GPU seems to be installed properly in the PowerEdge T640, although I have no way to test it. I used this link to guide me in my effort to passthrough my GPU in VMWare ESXi to an existing Windows 10 Pro VM that I intend to use for gaming. But, it didn’t get me all the way to success. I also did hours of other web searches and keyboard pounding to get it working.
Configuring GPU Passthrough
Following are the specific steps to passthrough a GPU in ESXi 7:
- In the vSphere Web Client, I went to Host -> Manage -> Hardware -> PCI Devices and scrolled until I found the GPU:
- Under the “Passthrough” column, I clicked to change the value to “Active”
- Reboot ESXi
- Went back to PCI Devices and made sure Passthrough is set to Active
- Shut down the VM that I want to pass the GPU to
- Select the VM -> Edit Settings -> VM Options -> Advanced -> Edit Configuration -> Add parameter: Key =
hypervisor.cpuid.v0
Value =FALSE
(this setting tells my VM that it isn’t a VM which resolves a few issues that I encountered) - Click OK
- Select Virtual Hardware -> Add other device and select my GPU (and High Definition audio, if applicable)
- Click Save
- Power On my VM (I may have rebooted ESXi before doing this)
- I think this part is optional, but I downloaded NVIDIA’s GPU software on my VM and had it update my drivers.
It’s possible that I left something out because this whole process took me several days of trial and error.
Very Important Lessons
After going through the process of getting this to work, I learned some very important things. They are detailed below.
vSphere Console Black and/or Unresponsive
First, when this WORKS PROPERLY (properly meaning as I wanted it to, of course), I lost my ability to view the VM through the vSphere Console. I can usually see an image of the desktop in the console, but it is not interactive and it doesn’t come up right away. It’s usually just black. Interestingly though, I can still use the remote desktop functionality in Windows 10 Pro and connect to the desktop remotely just fine that way.
DisplayPort Output Doesn’t Work
Second, after many hours of head pounding against hard surfaces, I figured out the DisplayPort(s) never give me output. Only the HDMI will output to my monitor. I have a new Dell U2719D Monitor that came with a DisplayPort cable that did not give me signal on any of the three ports on my GPU. I don’t know why, yet, but I do plan to go figure it out and I will write about it when that happens.
RDP Only Works when Not Connected to a Display
Third, if there is no (functional) monitor connected to the GPU, I was able to use RDP to connect to the VM. I could run software and see that it was using the GPU to process the graphics. For example, I could run Genshin Impact and get about 42 fps with a not-so-great visual experience–but it was absolutely playable. The Not Lawlors do not consider it playable, but I was technically able to play it. I tested a small Steam game, “Subnautica: Below Zero” and was able to get much better fps and a much better experience via RDP. I probably won’t dig too far into this, as this isn’t my intended use case, but my 144hz monitor was only processing these games at 32hz via RDP.
Mouse & Keyboard Also Need to Be Passed Through
Lastly, since I can no longer use RDP (and the mouse and keyboard attached to the client), how do I actually use my VM? I needed to attach them to the server and then pass them through, of course! Learn how I did that here.
11 Responses
Has anyone got this to work with Ubuntu Server 20.04?
I have an iGPU and an dGPU, trying to use the dedicated only for my Plex Media. I see the GPU when I do nvidia-smi, but I am not able to get Plex to use the dGPU, it keeps trying to use iGPU (with the steps above).
Thu Dec 22 01:32:25 2022
+—————————————————————————–+
| NVIDIA-SMI 515.86.01 Driver Version: 515.86.01 CUDA Version: 11.7 |
|——————————-+———————-+———————-+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 NVIDIA T1000 8GB Off | 00000000:0B:00.0 Off | N/A |
| 35% 50C P0 N/A / 50W | 3MiB / 8192MiB | 0% Default |
| | | N/A |
+——————————-+———————-+———————-+
+—————————————————————————–+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+—————————————————————————–+
**Edited my original reply** I have Plex running on a dedicated 20.04 VM using NVIDIA GTX 980 for transcoding. It’s been running great for probably close to 2 years. I don’t quite remember what I did to get it working, but I did have some trouble. I remember the firmware version was one big issue, but there was something else.
Update: After I ran “nvidia-smi”, it jogged a memory that maybe I had to delete the iGPU? I ran “lspci | grep VGA” and only have the dGPU listed, no integrated graphics. Maybe try deleting the iGPU and check your Plex settings against mine, below.
One more thought: I also had to install a “patch” that removed the transcoding limitations from the NVIDIA driver. NVIDIA has changed their position on that in the last couple years from what I hear, so it’s possible your newer firmware removes that limitation (you should google that).
Results of nvidia-smi:
+—————————————————————————–+
| NVIDIA-SMI 460.67 Driver Version: 460.67 CUDA Version: 11.2 |
|——————————-+———————-+———————-+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|===============================+======================+======================|
| 0 GeForce GTX 980 Off | 00000000:0B:00.0 Off | N/A |
| 0% 40C P8 17W / 216W | 3MiB / 4043MiB | 0% Default |
| | | N/A |
+——————————-+———————-+———————-+
+—————————————————————————–+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+—————————————————————————–+
Plex transcoder settings:

Planning on an implementation using ESXi 7 with two NVIDIA video cards. I really need the one card for dedicated pass-through to Win10, to do multi-monitor support for this to be successful. That card has 1 HDMI and 3 Displayport connections.
Displayport didn’t work for me when I set this up. You may need to get creative and see if there are any hardware/software devices that can take the 1 HDMI signal and split it in a way that is meaningful for your use case. Or, maybe buy an ultra-wide monitor and use windows functionality to use half for whatever and the other half for whatever else. While I did use current drivers, the graphics cards themselves were not new. I think my newest, best card is a 1080TI. But, I don’t think I even bothered trying the Displayport on it.
If you do go down this path with Displayport, and are successful, please let me know what you did to get it to work!!!
I decided to scrap the two NVIDIA card idea, since one video adapter (there’s nothing onboard) would be wasted on the host. I have a cheap pci-e x4 video card on the way for that, and I’m replacing the GTX 1650 with the RTX 3070. That new card is quite large, and obscures a pci-e x4 slot, so I’m down to one of those. I was hoping to use the USB card you recommended for the USB passthrough. A second pci-e x16 slot was needed for the 10G NIC.
The nice thing about that video card is it has 4 HDMI ports.
I initially bought the MSI 3070, as well…had the same problem with it blocking too many slots. I traded it for a 1080TI (and a few hundred dollars) with one of my son’s friends. When I go to upgrade, I’ll have to be very careful which card I buy. The 4 HDMI ports sound like a win for your needs!
nos sirvio mucho…….
What update of ESXi 7 are you running? U2?
Build 16324942, which is 7.0b
I should look at updating that some day.
Awesome – spent the weekend upgrading from 6.7 to 7.0 U3, tested vTPM using Native Key Provider to prepare for Windows 11. Unfortunately, I’m having the same issue with the DisplayPort output.
Hopefully a fix/patch will come out soon!
You can try moonlight 😉