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
derickso
Contributor
Contributor

Right but HDCP is between the software, video card and display.  If the software has direct access to the video card I don't see how this is any different than not in a VM.

0 Kudos
taylorjonl
Enthusiast
Enthusiast

I am not sure how to test DXVA but HDCP was an issue because I wasn't able to get the qemu emulated device to go away without crashing/hanging my VM.  Xen 4.2 has lots of patches that may make it work better but this is still the unstable version and no pre-built packages exist.

To get WMC to pass my system for Digital Cable Advisor I found a .cmd file online that tricked it.

I wasn't able to test video playback on this VM with WMC because this computer has no audio card.  If you look at my motherboard, it is a straight server board, my intention was alway to get a headless HTPC setup that can stream to my extenders.

My RAID is handled by my Areca hardware RAID controller, the way it works is in it's BIOS I define volume sets that are exposed to the computers BIOS as physical disks.  The OS just needs a driver which Linux has.  The guest OS has some paravirtualized drivers for accessing the space I provision for it.

0 Kudos
taylorjonl
Enthusiast
Enthusiast

HDCP is a capability of the GPU, as long as you can install a driver and interact with the card at a hardware level in the guest there is no reason it wouldn't be HDCP compliant.  But I think WMC is retarded and if you have another display adapter that is not HDCP compliant it assumes the whole system isn't HDCP compliant.  If you have a way to test a single card for compliance I will run this and give the results but in my guest I am using the Catalyst drivers and it is scoring 7.2 out of 7.9, their is no way to score that unless you have direct access to the hardware.

0 Kudos
derickso
Contributor
Contributor

A quick search turned up http://codecpack.co/download/DXVA_Checker.html but the real test would be to just play some 1080p content if you can hook it up to a display and look at your CPU use, it ought to be practically nothing if it is working.

It sounds like you used Xen inside Ubuntu or similar?  Did you consider trying XenServer?

0 Kudos
jhonnypolak
Contributor
Contributor

Gents,

I just installed ESXi 5 on my HTPC at home. The specs are:

Intel Xeon E5520 CPU (LGA 1366)

ASUS Rampage III Gene (bios: 1003)

HIS 6970 2GB Graphics Adapter

I created a Win 7 VM, passed through my 6970 to it and it works flawlessly.

Another great thing is that HDMI audio also works ! and 1080p video plays smoothly, no problems.

Seems that X58 is a great platform for VGA passthrough.

So far I've been successful in testing:

Shuttle SX58J3 + Radeon HD3450

and

Asus Rampage III Gene + Radeon 6970

Both motherboards are based on X58 chipset and both are running Xeon E5520 processors.

0 Kudos
taylorjonl
Enthusiast
Enthusiast

I tried running that test, it shows unsupported but I think my issue is audio, the audio on the video card is disabled because I am using a DVI adapter and my monitor doesn't support the audio.   I also don't have a TV that I can connect to it right now, this server is heavy and my TV is heavy so I don't want to risk moving either for a test.

I never had any intention of getting video working on this machine, it was to be my HTPC using the Ceton InfiniTV card to stream cable TV to my extenders, which it is doing flawlessly.  I actually think it is performing better than my dedicated machine.

Today I stressed out my latest install, I had it record 4 channels at once which I switched between them with my extender, it worked out well.  The CPU on the guest was near 0% and the host was near 0%.  I am going to let it run for several days, after scheduling several recordings, to see how stable it is.

I have spent the past couple days refining my solution and documenting it so I can reproduce it and so that others that want to do the same are not lost.

If anyone is interested, I created a document on google docs with my steps, here is a link:

https://docs.google.com/document/d/10landBzOrcGJ4DZr2G8n8YNsE4nF9gTp-bJaPIhB94s/edit?pli=1

It is a work in progress so it will be changing as I refine my system.  I will try to keep it semi generic but it is my steps not a tutorial.

0 Kudos
DMG210
Contributor
Contributor

Good news guys,

I've also successfully passed through a Radeon 6450 with both yaVDR / XBMC based on Ubuntu natty and Windows 7 on ESXi 5. I using the latest ATI drivers 12.1 x64 which work flawlessly with HDMI audio as well.

DXVA is working in Windows 7 as I'm able to play 1080p video with 0% CPU utilisation. YouTube HD works fine and I've tried Plasma Pong which works really well with round 90fps.

Hardware:

SuperMicro X8SIL-F
Xeon 3440

ESX 5.x

Radeon 6450

Edit: I can confirm DXVA playback is working correctly in XBMC on Windows 7

0 Kudos
derickso
Contributor
Contributor

DMG210 did you do anything special? I wonder if the 6 series Radeons just work a lot better when virtualized.

What ESX version did you use, and were there any tricks in getting the Video card driver installed?

Do you have a separate audio card that passes sound to the Radeon or does it just handle all audio duties automatically?

Thanks!

0 Kudos
FuNK3Y
Contributor
Contributor

That is a good news! I tried earlier with pretty much the same configuration and was getting a BSOD when installing the driver (11.10 or 11.11 as far as I can remember).

If you have some spare time, could you please try to install an older ATI driver (11.10 for instance) to see if the issue that many where experiencing is software or hardware related?

0 Kudos
DMG210
Contributor
Contributor

I can confirm success with 11.12 drivers but I haven't tried any older ones

The audio works via HDMI with the drivers that are installed with the graphics card.

I haven't done anything special, just a clean install of Win 7 with VMtools, then added the GPU passthrough + reserved RAM. Just did a standard install with the drivers and rebooted. I have to leave the second VMware adapter enabled in order for DXVA to work for some reason but I've just set the 6450 as the primary display. I'm running ESX 5. I guess its more of a software issue with the bluescreening drivers etc... I'm guessing some people may of had issues with PCI-E bridges on there mobos as with mine I can only use two slots for passthrough, the third x4 slot doesn't seem to work correctly with a Perc6i passthrough to Windows Server 08 R2 as it doesn't show up in device manager at all but the first 2 slots work fine (6450 + PERC 6i)

0 Kudos
derickso
Contributor
Contributor

Anybody try pass through with any of the new 7xxx series cards? I'm pretty interested in getting a 7750 for this..

0 Kudos
roancea
Contributor
Contributor

Hi, I'm hoping someone here can possibly help me out.  I have a esxi 5 host that I recently set up, have several vm's that I have running stable on it, and have begun to try and pass through a radeon to a Win7-64 system.  I'm able to configure the device for passthrough, restart, check on it under advanced settings and have it read out that the device is indeed running in passthrough mode.  I then assign it to a vm, and when I try to initialize the vm, I get an error stating that the task was canceled by a user.  This is true if it is in either of the first 2 8x slots on the board.  If I shift the card (via a 8x-->16x riser) to the last 8x slots (which run at 4x), the vm will boot up, but won't enable in W64 regardless what I do.  Platform is a Supermicro X9SCM-F-O running a E3-1230.  Any thoughts on what's going on here?

0 Kudos
streetsofopo
Contributor
Contributor

With the release of VMWare Workstation 8, for the moment I have given up trying to get this going on my hardware, which is now also being used as an HTPC.

Workstation 8 on W7 x64 can run my VMs as Local System (as background services), and autostarts them on boot, which is a good solution for me.

No issues with the Radeon as it's on real hardware. Can run ESXi as guest(s) if required.

0 Kudos
johnnyt29
Contributor
Contributor

I am able to get my new ASUS HD5450-based video card to passthrough to my 64bit VM with 2GB RAM (all reserved).

I can see it in Device Manager and installed the latest driver no problem, however it doesn't appear in my Display control panel. Now I don't actually have a monitor plugged into it as it is plugged into the mb video port for the (ESXi 5.0 rollup 2) console. When I plug a monitor in, either before booting or after, I get a BSOD.

Have tried setting BIOS to use HD5450 for console instead of onboard and it's no better.

1. Do I need to have a monitor physcially plugged in to see a second monitor in the Display control panel?

2. Does the brand of HD5450 matter, i.e. does it have to be an AMD/ATI HD5450 or should an ASUS brand HD5450 work assuming all other things line up?

0 Kudos
GBowman
Contributor
Contributor

Sorry for the delayed reply, I have been waiting to test a few other things on my setup before posting but never seam to get the time.

1. Yes you need a second diplay attached to see it in the display settings.  The monitor fault you are describing is the same as I have on each of my setups on the PCIe port that does not work.  I can install the card but once a monitor is connected I get BSOD.  On each machine of the 2 I have I can get a graphics card to work in only 1 of the 2 available slots, the x4 on one board but the x16 on the other.

2. brand should not matter, I have a mix off all sorts but recently bought a sparkle since sparkle dont use hypermemory.  I was thinking this might help with the BSOD's but it made no difference, as far as I can see cards from all brands work the same.  Also my 5xxx cards work just the same as my 6xxx cards (although I beleive the 6xxx cards are rebranded 5xxx cards anyhow),  I have not tested any 7xxx cards.

0 Kudos
ermockler
Contributor
Contributor

I have this working very nicely on an x58 3x sli board running esxi5. It has 3 xp vm's each with a dedicated radeon HD 4650. I also passed through a usb controller for each to get the keyboard & mouse. I get sound from HDMI, but just ordered 3 cheapo usb sound cards since it's impractical to connect 3 tv's. I'll probably have to switch to wireless keyb & mouse since each vm only has 2 usb ports.

Each vm is set to auto startup, as is the minecraft server vm. So I'm basically using this for my kids to play minecraft on, simultaneously on 3 vm's.

0 Kudos
ciuly
Contributor
Contributor

I too am trying in desparation (now) to passthrough any video card to my ESXi 5.0 which I plan on using mainly as my development machine (don't ask, it's too long of a story).

now I've got eberything else working fine. Currently, I'm using it but I started up my laptop, connected the monitor to it, extended desktop, and VNC-ed into my dev VM, so that my wife can still use the laptop. Its a biut annoying not to mention the VNC lags and stuff.

Anyway, my setup:

- Intel BOXDQ67OWB3

- Intel Core i7-2600

- 32GB ram

- ATI Radeon X600 SE 128MB (didn't work as passthrough, so its now for console on pice x4 (or x8, not sure))

- ZOTAC ZT-84GED2M-HSL GeForce 8400 GS 256MB 32-bit DDR3 (also didn't work for passthrough so it's now lying on my desk)

- ASUS EAH5450 silent512 ddr2 (passed through) basically ATI HD 5450 or at least that's what I asked from the vendor few hours earlier...

- esxi 5.0

now, I tested WinXP SP1 32 bit. its a total mess. BSOD all the way no matter what..

then I tested my migrated WinXP SP2 32 bit, which almost worked. (now, there is another long story behind this migrated OS.. long story short, the original install was on a desktop PC, AMD 1.something GHz with maybe 1 GB of ram, nvidia card connected to my samsung monitor; an old rig. About 5-6 years ago I migrated that PC installation to my laptop.(another long story, don't ask) which is a dual core 2.2 Ghz with (now) 4 gb ram, which I also used with my (same) samsung monitor. And then about week ago I migrated this laptop with converter over on esxi).

Now, I passed through the 5450 vga card and during installation of the drivers it asked me for my samsung monitor drivers. And I was like "wow", it will work. And yes, it all looks good, I can set its settings, screen resolution and everything, but I cannot extend the desktop onto that screen nor can I make that one the primary as it will freeze then BSOD after a while with ome "hard error blabla, infinite loop and some ati driver". basically the same bsod others also got and reported here. To note, nothing is shoiwing up on the monitor at any time. No matter if I use the VGA or DVI connection. No HDMI though as my samsung monitor, as you probably guessed, is over 6 years old. About 8 or 9 if I recall correctly.

So I am "" (this) close to have it working but I'm missing something...

So I tried tried win7. 32 and 64 bit. the thing installed ok with the drivers from CD I got with the card (same used above), but it would remain stuck on the unkown devices group or what its called. Basically, it sees it as a VGA compatible card, if I go into properties its an ATI with everything in order, but no signla on the monitor and its not up in the display devices list so I can manipulate it as I can in my WinXP SP2 VM.

One weird thing in the win7 installation is that it sees it as a 1024 MB card, where it is (should be) a 512 mb one. I'm gonna check the card once I shutdown for the night if its indeed a 1024 MB card and they gave me the correct box but the wrong card :smileygrin:

I installed hwinfo and it reports as:

ASUS EAH5450

ATI Mobility Radeon HD 5430/5450/62x0 (PARK LP GL)

PCIe v2.0 x32 (5.0 Gb/s) @ x32 (5.0 Gb/s)

-1024 KB (is this minus right? or is it signaling problems?)

GDDR5 SDRAM

512-bit

pixel pipelines: 512

no shaders

The box says, it should be a 512 MB DDR2.

Now, with this long story comes a conclusion and request:

- I need to get any PCIe video card passed through any windows virtual machine so that I can work properly.

I will be using rem,ote desktop to work on different development and test environments so my main connection VM can really be anything as long as it has video on it and can do RDP (not sure if linux can, but I can go with that too if I can get this card working)

Can anyone help me out with the missing part to get this thing going properly?

Do I need to go on ebay and get a used HD 3450 as I see that one worked for most people? Thing is it cannot be found in stores anymore as supposedly its not being manufactured anymore.

I'd really like to get this 5450 working or even one of the other 2 cards if possible.

For me, the video is strictly to see what I'm doing, I don't need any fancy gaming or video editing or streaming or whatever. Just ot be abl;e to see at a decent resolution what I'm doing.

Thanks.

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

Hi ciuly,

Have you tried downloading the latest drivers from ATI's website? I had issues with a XP VM when I tried pass-through an ATI 4350 with an old set of drivers... It might just be a case of trial and error with XP but I would start with the latest drivers from ATI rather than ASUS as the ones on the CD are probably out of date, the same as the ones from ASUS's website i expect Smiley Sad

It seems ATI have nailed the driver issue on the head with the latest releases (last 6 months or so...).  I've have had nothing but success with my rig and a 6450 with Windows Embedded 2011 / Windows 7 x64. Not one BSOD since Christmas!! I can't wait for my BlackGold 3600 TV tuner to arrive and hopefully pass-through that as well.

I would recommend trying on Windows 7 first before playing with XP... Good luck :smileygrin:

0 Kudos
GBowman
Contributor
Contributor

Sounds all very familiar.  Its all trial and error with this and it is my conclusion that its the motherboard thats the key not the graphics card (assuming ATI hardware since NVidia drivers wont load).  I would suggest picking up an old HP DC9700 off ebay for a test machine.  Old I know but cheap and I guarentee you will get an ATI card to work perfectly in passthru in the 4x slot, I have tried a 5450, 5770 and 6770 in windows XP and 7 (32 and 64), although I have not tried Linux with graphics passthru.  Other cards work in the x16 slot but not graphics.

Or pick any combination of hardware already mentioned in this thread.  I am particularly interested in any main board that can passthru more than 1 graphics card as both machines I have tested will only passthru on one pcie port for graphics.

0 Kudos
ciuly
Contributor
Contributor

there are no specific drivers on amd site for HD 5450. I've no clue what to download. Guess I'll try with the ones most close to it by numbers and work my way up. Unless someone with a 5450 who has got the right drivers steps up.

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