VMware Cloud Community
taylorjonl
Enthusiast
Enthusiast

VMDirectPath and ATI Radeon

I am using VMware ESXi and I am trying to setup a guest that is Windows 7 that will have an ATI Radeon video card passed through to it.  I actually had this working on a previous system but I had to reinstall.  Now when I do this the guest fails to start and I get the following:

Error message from localhost.XXXXXXXXXXX:
PCIPassthru 004:00.0: Guest tried to (null)map
32 device pages (with base address of 0xb5d20)
to a range occupied by main memory. This is
outside of the PCI Hole. Add pciHole.start =
"2909" to the configuration file and then power
on the VM.
error
12/23/2010 1:04:36 PM
media
User

When I do as it asks, the guest now starts but gets an immediate BSOD concerning memory management.  Any ideas on why this is occuring and why it worked at one point but now it fails?

814 Replies
hni
Contributor
Contributor

Curses. Thought I was close as well, but no luck Smiley Sad

Passthrough successful, both tried a Win7 (Tiny7) and Windows Embedded, as suggested by dmg210 earlier in this thread. The GFX card gets through to the VM, driver installation also succeeds, but plugging in a screen gives the by now dreaded BSOD caused by atikmpag.sys.

I tried getting rid of the VMWare SVGA virtual gfx to make the "real" gfx card the only display adapter, but wasn't able to figure out how. When I disabled the VMWare SVGA, nothing changed. When I removed it entirely via device manager and restarted, a new "safe display adapter" was handling the display.

Setup

Mobo: Tyan S5512WGM2NR (Intel C204 chipset)
CPU: Xeon E3-1230
GFX: Radeon HD 6450
VMWare ESXi 5 Update 1

Reply
0 Kudos
GBowman
Contributor
Contributor

Sounds the same as with my setup.  Well I've bought myself an X58 chipset board now to play with.  Not done any testing yet though as I dont have a case or PSU for it.  I found an interesting article saying that even though some CPU's on the Intel Ark website say they dont support Vt-d it wont stop Vt-d working.  Apparently Vt-d is only part of the memory controler so on older chips with no in built memory controler they list them as 'Vt-d NO' because in that case Vt-d will work on the motherboard only.

To prove it I took my E8400 (Ark says Vt-d YES) out of my Q45 motherboard and fitted a Q6700 (Ark says nothing about Vt-d) and Vt-d still works fine.  This is why I spent money on an 1156 setup in the first place as most of the 1156 range say 'Vt-d YES' on Intel ARK but the X58 1366 chips all said nothing about it.

On the plus side my current working system has now been up for about a year using Vt-d graphics for the front end HTPC (used every day) and then Vt-d tv tunner to the TV server back end and another Vt-d telephony card for Trixbox.  Ad that to the 9 other non Vt-d VM's running 24/7 and I think its working rather well.  You just have to try and find a motherboard that works for you (or copy a system already posted about on here).  It just takes a bit of time to find codecs that work without DXVA as I cant get that to work in Windows at all.

Reply
0 Kudos
derickso
Contributor
Contributor

GBowman: Do you have a screen attached to your VT-d'd video card?  I'm also interested in the codecs you have used.. I want to do essentially the same thing.

Reply
0 Kudos
swizzle03049
Contributor
Contributor

Has anyone managed to get this to work with a Q67 mobo?

I have an Intel i5 2400 (vt-d YES) and intel DQ67SWB3 motherboard and an ATI 5450 and have had zero success. Just ATI BSOD's over and over.

I do have an e8400 and a Q45 chipset I could try if anyone actually thinks that would make any difference.

It seems most of the success stories are coming from X58 boards.

Reply
0 Kudos
GBowman
Contributor
Contributor

Yes I have an HD 5770 attached to an LCD TV for the family to watch TV etc.  I use Mediaportal with ATI's codec for mpeg and FFDShow with DXVA disabled for H264, other codecs either show blank screen, green screen or crash the VM.  Windows 7 Codecs work in mediaplayer but not in Mediaportal which is a head scratcher.  I have to have 4 VCPU's assigned to the VM to get smooth playback in H264 with about 50% CPU use, if I scale back to 2 VCPU's I get choppy video but only on 1080p videos.  This is with an i7 870 but underclocked to 2.4 ghz as it was getting to hot in my HTPC case.

As I have said before, both my test systems (a Q57 and a Q45) have 2 PCIx16 slots but I am only able to use one for video, the full X16 on the Q57 but the reduced 4 lane x16 slot on the Q45.

Looking at a larger HTPC case now I have a full ATX X58 mainboard and a 40nm i7 not a 32nm one (or might save up for a 32nm 1366 chip, all hex cores!)

Reply
0 Kudos
FuNK3Y
Contributor
Contributor

Hello,

A few weeks ago I've done some testing again; here is the output:

With Catalyst version 11.xx & ESXi 5 I had BSOD when windows started with a display pluged.

With Catalyst version 12.4 & ESXi 5 U1 windows starts fine, with DXVA!

I used FFDShow x64, and when DXVA was running it went quite fine; I was able to watch movies with sound and near 0 CPU load.

But.... I also had some films that could not get accelerated through DXVA+FFDShow; I was unable to play those even with 4 (or 8; can't remember for sure) vCPU (with FFDShow software).

I also had problems with DTS HD through HDMI; I have to use a dedicated toslink cable to play those correctly (this problem is not related to virtualizion though).

But... the worst is that during my testing I was able to get the VM in some unstable state: no picture on the external display. The only way to fix this was to restart the host... (really, really, really annoying!!!!).

For all those reasons I have decided not to go virtual with my HTPC.

Reply
0 Kudos
swizzle03049
Contributor
Contributor

Well I have spent the better part of the day trying to get GPU VMdirectpath passthrough to work on this box and have had no luck.

Intel i5 2400

Intel DQ67SW B3

16gb ddr3

GPU's tried:

ATI 5450 - ATI BSOD no matter how I install drivers, which drivers I pick. As soon as I enable the card it tanks.

Nvidia GT310 - No picture, graphics drivers install, no picture on the monitor.

ASUS Nvidia GT210 - No picture, graphics drivers install, no picture on the monitor.

BFG 8400GT - No picture, graphics drivers install, no picture on the monitor.

I've tried all of the cards in the 16x and 1x slots and it doesn't seem to matter. I haven't tried the 4x but I supposed I could remove the card in there if someone thought it might actually help.

16X ________________

1X  __

4X  _____

PCI   __________

I even thought for a moment maybe the onboard video was causing issues, so I put an old ATI X300 in the 16x and put the 5450 in the 1x (16x-->1x adapter) and still had the same result.

I think the Q67 chipset doesn't pass the right info along for GPU passthrough.

I can pass a SATA card, a USB 3.0 card, and a PCI-E TV tuner card with no issues at all, but GPUs don't like q67.

------

Maybe it's time to try a different hypervisor or a different mobo.

Reply
0 Kudos
Artwright
Contributor
Contributor

Hello FunK3Y,

I am interested in the results of your successful GPU passthrough with ESX 5i Update 1.  You mentioned you successfully got it working with Catalyst version 12.4 and ESXi 5 U1 but you had the BSOD when Windows start with just ESXi 5 and Catalyst 11.xx.

Did you ever try with just the latest Catalyst 12.4 and ESXi 5 (non update 1)?  If you did, did you get a BSOD as well?

I am having the same issue as most people.  I get a BSOD with the Atimpag.sys error once I install the drivers for my graphics card and Windows reboots.  I have ESX5i (non U1) and tried with the latest Catalyst drivers but I always get a BSOD.

I havent tried with ESX5i Update 1 yet.

I have an Asrock Z68 Extreme4 Gen3 motherboard, Core i7 3770 and 7750 Radeon GPU.

Would be interested in hearing your feedback.

Thanks.

Reply
0 Kudos
FuNK3Y
Contributor
Contributor

As far as I remember I haven't tried 12.4 without the update 1. As a matter of fact I might even have used 12.3 at that time.

Here are the relevant parts of my configuration:

- SuperMicro X8DTH-IF

- ATI HD 6450

Reply
0 Kudos
ciuly
Contributor
Contributor

I managed to test my USB video card. That works at an acceptable level. I can work on it but gaming sucks. I'm gonna buy a better one, now that I know this works.

I also tested an ATI 2400 PRO 256 MB. Exact same thing as with the others.

I have a couple more cards for testing but something tells me its gonna be the same thing. So I am now looking after BIOS updates and that sort of stuff.

I'm also gonna install 4.1 on a USB stick and see how that is going, but will probably only get there in maybe 2 weeks as I'm rather busy.

Will report back when I've got news.

VMDirectPath with ATI GPU document https://docs.google.com/spreadsheet/ccc?key=0Aqp_xYBwP_Y7dE5EclhtaDdIV09lNWxfODd1alRUTlE
Reply
0 Kudos
GBowman
Contributor
Contributor

I upgraded my Q45 machine today to 5.0 Update 1.  Fresh install of Windows 7 Ultimate 64 bit and newest ATI drivers.  No difference.  DXVA checker application still shows no DXVA-HD support.

Tomorrow I will try to move the graphics card to the other slot to see if 5.0 Update 1 has made any difference at all.

Reply
0 Kudos
ciuly
Contributor
Contributor

I managed to test 4.1 with a 3450 vga with latest 12.4 drivers but i got the exact same BSOD in ati driver.

I also looked at the bios updates for my board, nothign that would touch the vt-d stuff but there are a few things on the PCIe support, but mainly for RAID. I will probably give it a shot anyway sometime.

I should probably start looking for another mainboard Smiley Happy

VMDirectPath with ATI GPU document https://docs.google.com/spreadsheet/ccc?key=0Aqp_xYBwP_Y7dE5EclhtaDdIV09lNWxfODd1alRUTlE
Reply
0 Kudos
MrPippy
Contributor
Contributor

I just upgraded the BIOS on my board (ASUS P8B-E/4L), and passing through a Radeon HD6450 now works!!! Smiley Happy

Previously, I consistently got a atikmpag BSOD when a monitor was connected and the Radeon card initialized.

I upgraded from BIOS 1102 to 2011--the release notes for 2011 only mention Ivy Bridge support and some management firmware, but clearly there were bigger changes! (As an aside, for some reason they removed the BIOS option to use either PCIE or the onboard Aspeed graphics at boot). I have a theory about ACPI tables and what changed in the BIOS to enable gfx passthrough--it's at the bottom of this post.

I tested with Windows 7 (32-bit), with ~700MB of RAM allocated

Steps:

1) start with a fresh Windows install

2) pass through the card (without any monitors connected)

3) install Catalyst 12.04

4) reboot Windows

5) connect monitor (my TV over HDMI)

6) the TV is enabled as a second monitor!

At that point, disabling the VMware SVGA adapter turned the TV into the primary monitor. It didn't work quite right after a reboot (the Radeon didn't initialize for some reason), but I'm still figuring this all out.

Motherboard: ASUS P8B-E/4L

CPU: Xeon E3-1230

ESXi 5.0 (not U1)

Card: Sapphire Radeon HD6450 1GB DDR3

And now the speculation about ACPI tables and what changed in this BIOS release to make gfx passthrough work:

I booted Ubuntu 12.04 on the machine before and after the BIOS update, and saved the dmesg (kernel bootup messages) each time. An early part of the boot procedure is to parse the ACPI tables, and print some info about them.

BIOS 1102 ACPI tables:

[    0.000000] ACPI: RSDP 00000000000f0450 00024 (v02 ALASKA)
[    0.000000] ACPI: XSDT 00000000bf56f068 00054 (v01 ALASKA    A M I 01072009 AMI  00010013)
[    0.000000] ACPI: FACP 00000000bf575bf8 000F4 (v04 ALASKA    A M I 01072009 AMI  00010013)
[    0.000000] ACPI: DSDT 00000000bf56f150 06AA3 (v02 ALASKA    A M I 00000000 INTL 20051117)
[    0.000000] ACPI: FACS 00000000bf608f80 00040
[    0.000000] ACPI: APIC 00000000bf575cf0 00092 (v03 ALASKA    A M I 01072009 AMI  00010013)
[    0.000000] ACPI: SSDT 00000000bf575d88 001D6 (v01 AMICPU     PROC 00000001 MSFT 03000001)
[    0.000000] ACPI: MCFG 00000000bf575f60 0003C (v01 ALASKA    A M I 01072009 MSFT 00000097)
[    0.000000] ACPI: HPET 00000000bf575fa0 00038 (v01 ALASKA    A M I 01072009 AMI. 00000004)
[    0.000000] ACPI: DMAR 00000000bf575fd8 000B0 (v01 ALASKA    A M I 00000001 INTL 00000001)

BIOS 2011 ACPI tables:

[    0.000000] ACPI: RSDP 00000000000f0490 00024 (v02 ALASKA)

[    0.000000] ACPI: XSDT 00000000bf3a2080 00084 (v01 ALASKA    A M I 01072009 AMI  00010013)

[    0.000000] ACPI: FACP 00000000bf3acdf0 000F4 (v04 ALASKA    A M I 01072009 AMI  00010013)

[    0.000000] ACPI: DSDT 00000000bf3a21a0 0AC4C (v02 ALASKA    A M I 00000013 INTL 20051117)

[    0.000000] ACPI: FACS 00000000bf3bbf80 00040

[    0.000000] ACPI: APIC 00000000bf3acee8 00092 (v03 ALASKA    A M I 01072009 AMI  00010013)

[    0.000000] ACPI: MCFG 00000000bf3acf80 0003C (v01 ALASKA    A M I 01072009 MSFT 00000097)

[    0.000000] ACPI: HPET 00000000bf3acfc0 00038 (v01 ALASKA    A M I 01072009 AMI. 00000005)

[    0.000000] ACPI: SSDT 00000000bf3acff8 0036D (v01 SataRe SataTabl 00001000 INTL 20091112)

[    0.000000] ACPI: SSDT 00000000bf3ad368 009A4 (v01  PmRef  Cpu0Ist 00003000 INTL 20051117)

[    0.000000] ACPI: SSDT 00000000bf3add10 00A88 (v01  PmRef    CpuPm 00003000 INTL 20051117)

[    0.000000] ACPI: DMAR 00000000bf3ae798 00078 (v01 INTEL      SNB  00000001 INTL 00000001)

[    0.000000] ACPI: EINJ 00000000bf3ae810 00130 (v01    AMI AMI EINJ 00000000      00000000)

[    0.000000] ACPI: ERST 00000000bf3ae940 00210 (v01  AMIER AMI ERST 00000000      00000000)

[    0.000000] ACPI: HEST 00000000bf3aeb50 000A8 (v01    AMI AMI HEST 00000000      00000000)

[    0.000000] ACPI: BERT 00000000bf3aebf8 00030 (v01    AMI AMI BERT 00000000      00000000)

The DMAR table is what I'm interested in here (DMAR is part of VT-d and used for virtualizing hardware). BIOS 1102 lists the DMAR table from AMI, whereas 2011 shows Intel. Unfortunately I didn't think to dump the contents of the tables, so I don't know any more about what the tables store.

I also found a dmesg from a Supermicro X9SCM/SCL, which has the same ALASKA AMI label on the DMAR table.

Maybe this DMAR change to Intel is enabling graphics passthrough? Getting an ALASKA AMI DMAR dump to compare to my INTEL DMAR table might shed some light.

Reply
0 Kudos
technobro
Contributor
Contributor

Wow what a interesting post , after reading it all the other night, it gets me very motivated to build one esxi machine.

Concratulation to everyone of you who contribute to it, We live in a very interesting time indeed.

Before jumping and ordering ....

I would like to know : Is anyone tried or had any luck whit a Z77 chipset ?

Reply
0 Kudos
sevet
Contributor
Contributor

Almost celebrating 1 year on this post.

Finally got it working!! same motherboard Intel DP67BG with new bios 2185, same ATI 3450, with Catalyst 12.4 i was sure i tried that version a few weeks ago when FuNK3Y mentioned this but I was getting BSOD, maybe its the bios+driver combination.....

When windows auto installs the driver, I get BSOD, after installing the catalyst everything works.

Since than I also added a jmicron PCIe passthrough so I can have DVD to my virtual physical machine (had XP working with USB video adaptor), may be the PCIe+BIOS+ATI Drivers thing....

I'm not touching anything now! how do I check acceleration? I got XBMC runningn at last on it (didn't work with the USB video...)

ATI definatlly fix something as with default driver I get BSOD.

The on board audio also wasn't working so good (didn't try latly) so I put a 5.1 10$ on ebay usb sound card that works ok for me.

So happy.

Reply
0 Kudos
sevet
Contributor
Contributor

After the success I had with making it work on the same original board I started a year ago....

I messed it up, but only for a few reboots, I fount that sometime on my last tests I disabled the onboard audio on the bios, when I enabled it along with the esata I have (which is a diffferent onboard controller) it screwed the gpu passthrough.

So now I know its drivers+bios+bios settings that solved it, as I mentioned, when it does work, i still get blue screens with default drivers, 12.4 drivers work.

I also have disabled in the bios the firewire and the ir port.

Next step, get a Radeon HD 7750 and test it. (cheap and low power), maybe even an HD capture card....

Reply
0 Kudos
aaronvm
Contributor
Contributor

Update on the Shuttle SH67H3.  I tried the latest firmware SH67H000.116 w/ latest Catalyst 12.4 drivers, still BSOD.  Also tried disabling onboard audio, still BSOD.  As previously mentioned, I can avoid the BSOD by disabling the VMWare SVGA driver in Safe Mode, but while the system will boot, an ATI dialogue pops up to warn that no card could be found.

Note that Shuttle has updated the motherboard to V2.0 for this system (apparently you can ship V1.0 back and swap it for a $40 charge).  The new motherboard runs a different BIOS version.  The point of the new motherboard is to add support for Ivy Bridge.  I am not really sure whether it's worth trying the swap, or to just purchase a new Shuttle.  I've been thinking about selling my SH67H3 and buying an SZ77R5.  Of course this will be a huge waste of time/money if it doesn't allow GPU passthrough to work, as I have no other reason to upgrade at this time.

Reply
0 Kudos
swizzle03049
Contributor
Contributor

After failing over and over again with a Q67 chipset motherboard and an i5 2400 with the ATI BSOD using an ATI 5450 PCI-e card I bought an used i7 920 and an ASUS Rampage III extreme and VMDirectpath passes through perfectly with that ATI 5450.

CONFIRMED WORKING HARDWARE:

ASUS Rampage III Extreme (x58 chipset)

ATI 5450

Intel Core i7 920

24GB DDR3

Not Working:

Intel BOXDQ67SWB3 (Q67 chipset)

ATI 5450

Intel Core i5 2400

16GB DDR3

There must be something with the Sandy Bridge chipsets that keeps this from working. I even tried disabling the onboard video on the i5 2400 and using another video card for the esxi box and then passing the 5450 through with the same results. As soon as I installed the x58 chipset board it worked fine.

I literally just switched out the motherboard using the same ESXi install, same datastores, same config, etc

My same test VM that failed every time worked perfectly once I switched.

I do find it odd that Intel does not advertise VT-d with the i7 920 and X58 chipset and it works perfectly.


Reply
0 Kudos
astro99
Contributor
Contributor

Just wanted to add that I also have an Intel BOXDQ67SWB3 (Q67 chipset) with an i5 2500 and an ATI Radeon 3450 and have been getting the same BSOB as everyone else.  I have ESX 5 but haven't tried update 1 yet or disabling sound as someone else suggested.  However, I wanted to report that vga passthru does work with this motherboard when using Xen.  As a test, I installed OpenSUSE 12.1 and Xen and was able to passthru the ATI 3450 to a Windows 7 machine running in Xen.  This tells me that something must be missing from/wrong with ESX that prevents vga passthru from working on the Q67 chipset because the motherboard is capable of vga passthru.  With this motherboard and ESX I am able to passthru the usb 3 controller and the on board nic.

Reply
0 Kudos
twisterStorm
Contributor
Contributor

i am trying to use a Sapphire 6950 on a AsRock 990FX Extreme4 Board (AMD 990FX Chipset), AMD FX 8150, 16GB RAM and ESXI 5 U1 and EFI Firmware for the Windows 7 64Bit VM. in an earlier attempt, i used Ubuntu 11.10 with Xen 4.1.2 and it works very good, but i dont want to use an non LTS Version of Ubuntu. With Ubuntu 12.04 i can not setup Xen, because the X-Server doesn't work with the Xen Kernel. I decided to change to esxi.

With esxi 5U1 and 8GB or 4 GB of RAM the VM doesn't boot after i attached the pci devices from the VGA and HDMI port to it, it hangs on the EFI Bootloader and says "Windows Boot Manager ... unsuccessful.."

When i change the Ram size to 2 GB Windows is booting, during the installation of catalyst 12.4 i can see Windows on the connected Monitor for 20seconds. After this the Monitor lost the signal and in vSphere Console i see nothing. a few seconds later the VM is stoppt and a error is in the Log tab. i will look at this and will try it again. In Recoverymode of Windows, the Device Manager list the VGA correctly as "ATI 6950".

Reply
0 Kudos