So I got the iGPU to work in ESXi 6.7, boy is it a bear to do. At least my pain is your gain…
I have a Lenovo ts-140 Xeon E3-1225v3. I just finished testing in Handbrake and Im getting almost 110fps encoding using Quicksync on Intel QSV encoding and Windows 10 shows 15-20% GPU utilization.
The E3-1225v3 comes with Intel HD graphics p4600/p4700
I was getting Error 43 no matter what I did and after 4 days of almost the entire day messing around, I got it.
So anyway, what I had to do was this:
-
Pop in a secondary video card. It isnt used by anything, it but it does show up in ESXi as a device. Any video card will do. The idea is to make your iGPU not be primary. (a secondary graphics card might not be necessary but it only worked for me when I finally put one in)
-
I set the bios to initialize the IEG (Internal built in graphics) for graphics. I set it to 256mb of memory, and the key here, set it to allow multi monitor. If you dont, it turns off the other video card you put in
-
Boot your ESXi 6.7 box, and you will see two graphics cards listed, the internal Intel one and whatever your second card is. You want to enable pass through on your intel card.
-
You also want to add the Intel graphics to your VM and reserve all memory
-
You need to edit the VM options and add this line to the config of the VM, or edit the VMX file and add it
pciHole.start=2048
SVGA.Present=FALSE
That’s it, for INTEL based iGPU pass through you DO NOT need the following. I discovered putting those settings in causes error 43.
hypervisor.cpuid.v0 = FALSE
SMBIOS.reflectHost = “TRUE”
pciPassthru0.msiEnabled = “FALSE”
Now here is the key that alot of trial and error it took me to figure out. You cannot do this if your VM is running on BIOS, it must be EFI.
There’s one important reason for this, You will get Error 43 no matter what you do if you dont set SVGA.Present=False. And you CANNOT do that with a BIOS machine, it wont boot. It just freezes, but the machine DOES boot all the way and is accessible by RDP if it is a EFI based OS and VM.
What I discovered is I was getting error 43 with a EFI machine up until I set SVGA.Present to FALSE. When I had both videos set up, I was still getting error 43, but when I turned off the VMware SVGA adapter, then the iGPU began to work.
Now on my setup, I have a VGA monitor hooked up to the host machine. I see nothing on my monitor. When I boot the VM, the montior goes black and stays black…
Hope this helps anyone in the future.