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

I've also had success passing through the Radeon 4350 with yaVDR & XBMC on the Linux build. I had to uninstall the nvidia drivers when using yaVDR as this would result in a purple screen of death if both the nvidia and ATI drivers are installed at the same time when passing through the card. I using the latest ATI drivers 11.12 x64 which work flawlessly with HDMI audio as well.

I'm not to sure if hardware acceleration is working, I doubt it as CPU usage is around 30% on 4 cores when playing 1080p content.

I might give Mac Lion a go some time this week.

Hardware:

SuperMicro X8SIL-F
Xeon 3440

ESX 5.x

Radeon 4350

I can't wait to purchase the BlackGold BG3600 DVB-T2/S2 quad tuner as soon as it's available. Hopefully I'll be able to passthough the tuner for the ultimate virtualised HTPC!

Reply
0 Kudos
jhonnypolak
Contributor
Contributor

Just a quick update.

I think we're getting closer to a solution here.

I strongly believe the issue lies around the SVGA driver from vmware. So what i tried doing is: I passed through my HD3450 to a Windows 7 32bit Enterprise VM. I connected to the VM via VNC instead of bringing up a console from vClient and then enabling the passed through VGA card.

The result was the VM still crashed, however I was able to see the moment the crash occurs

With Device Manager open, I could see that a Generic PNP monitor gets installed right before the crash.

So..... what I've done is,

I UNPLUGGED the monitor from the HD3450 VM and turned on the Radeon HD3450 in that VM in Device Manager.

And guess what ... the VM did not crash .... It works !

I can get to the Catalyst Control Center and also see "some" settings, not all.

But more interestingly I am able to go into Graphics Settings in Windows and detect the Radeon there.

I'm currently tinkering around to see if a procedure can be put together to activate the Radeon while disabling the VMWARE SVGA display because the issue is... the moment you plug a monitor into the VGA card you get a BSOD 😕

Reply
0 Kudos
jhonnypolak
Contributor
Contributor

Quick question to those that go this working .... are you using a VGA or DVI connection for your passed through graphics card ?

Reply
0 Kudos
DMG210
Contributor
Contributor

I'm using HDMI, I haven't tried VGA or DVI.

In Windows 7 I'm able to disable the VMware SVGA in device manager but then I'm unable to play videos, I tried this when trying to get HDCP to work. If I leave it enabled and extend the displays everything works fine but your unable to see the console from VMware. I used VNC to configure the display as your unable to do this via remote desktop.

Reply
0 Kudos
BAM279
Contributor
Contributor

Im using the VGA connector here which works great.  I havent tried the DVI.

On another note, I tried another attempt at getting ATI passthrough working on Windows XP Pro SP3 32bit and it worked...  I even installed XBMC and it played back media just fine.  Dont know why I had issues before, the only thing that changed is that I recently updated my ESXi 4u1 with the latest patches.  Not sure if it was this or just plain luck that XP works now...

BAM.

Reply
0 Kudos
jhonnypolak
Contributor
Contributor

BAM279, DMG210

Can you tell me what specs you're running ? CPU / Mobo / GFX ?

I'm trying to check if motherboards or CPU's that have integrated Intel HD graphics interfere with VGA Pass-through

Also if you do have Intel HD integrated graphics can you tell me if you're running the Intel HD graphics as a primary gfx card and the PCIe card as secondary or vice versa ?

(the setting is in the bios for which graphics card to boot first: integrated or pcie)

Reply
0 Kudos
BAM279
Contributor
Contributor

2x AMD Opteron 4180 CPU

Asus KCMA-D8 Mobo

ATI Radeon HD 3450 PCIe GPU

Reply
0 Kudos
GBowman
Contributor
Contributor

Have had it working on both VGA (via addapter on 5770 card as DVI only) and DVI, on both cards and on both setups.  I can confirm I only get the BSOD's when the monitor is attached but only on the ports already mentioned as not working.

I have never been able to get a graphics card to work with a monitor connected in the ports I have listed as not working but as each machine has a port that is working I can conclude its nothing to do with the CPU or the VMWare machies virtual hardware.  Also I have only ever tried windows OS's, XP Pro  32 bit and Widnows 7 Home Premium 32 and 64 bit.

EDIT:- one other avenue I tested was Hyper Memory.  My thoughts were that if Hypermemory was causing the issue as it tried to map main memory as the driver was loaded or a monitor connected but I bought a Saphire card (Saphire cards dont use Hypermemory) and the results were the same.

Reply
0 Kudos
DMG210
Contributor
Contributor

I'm running the following:

SuperMicro X8SIL-F
Xeon 3440

Radeon 4350

There is no intel graphics onboard, I'm using the onboard Matrox graphics card as the primary and the radeon as the secondary.

Reply
0 Kudos
jhonnypolak
Contributor
Contributor

Thanks for posting that guys.

I just recently purchase a Shutle SX58J3 after doing some research on chipsets and VT-d.
This is a server grade shuttle box, meaning it supports Xeon processors (not officially).

I can now successfully pass through VGA (Radeon HD3450) , USB and the two integrated Marvel NICs in ESXi 4.1.0 Update 2 to any client VM !!!!!

Smiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley HappySmiley Happy

For those who are planning on buying a shuttle to get this working i'm using:

Shuttle XPC SX58J3 (bios 1.05)

ESXI 4.1.0 (ESXi 5 hangs on relocating kernel - no fix for this now) but esxi 4 works fine

3 x 4GB Hynix 1066 RAM

Dell Radeon HD3450 256MB (using Dell Driver)

Intel 1GB NIC for ESXi 4 management (which brings the box's total LAN port count to 3)

You can find an OEM driver for ESXi4 to get the native LAN ports working with vmware management.

The only thing that remains unsolved for me right now is the Audio card. When i pass it through to a Windows 7 VM it hangs the VM and the entire ESXi box. I might need to investigate if there are any prerequisites for this particular sound chip.

Reply
0 Kudos
jhonnypolak
Contributor
Contributor

I've created a reference guide for the SX58J3 and how the USB and PCI devices map to those in ESXi.

smallsx.jpg

Here's a link to the full sized slide:

http://imageshack.us/f/842/fullsx.jpg/

Reply
0 Kudos
GBowman
Contributor
Contributor

In your drawing you have labeled the UB2 Controllers as 'eSATA?'  I found that these are the USB2 hub and each hub has 3 pairs of USB ports, without the USB2 hub passed through along with all the ports you wont get the USB's to work at USB2 speeds.  Its the same with non virtualised setups, there will be 1 USB2 hub identified in hardware for each group of USB ports, normally 1 for the onboard USB's and another for the header USB's.

I had to assign some reserved CPU to a VM to get sound to work although when it didnt work it didnt crash the whole box it just had very poor sound.

I have now got my ESXi box in the main room as the main HTPC and its used by the wife and kids to watch telly about 3 hours a day without fault.  Only problem is I cant play blu rays on it or DVD's through conventional software as they get copyright protection issues in the virtual environment.  Even then Cyberlink PowerDVD and WinDVD both throw up an error when they detect they are in a virtual environment and refuse to run.

EDIT:- also 1 problem I have with both my setups is if I set any of the SATA controllers to pass through it marks them as 'requires a reboot' then once rebooted it lets them pass through but marks them again as 'requires reboot' then once rebooted they are no longer passed through.  I kind of wanted the 2 port one passed through to the VM with the graphics card as even though I have RDM working I cant use this for the optical drive which is on USB instead.

Reply
0 Kudos
derickso
Contributor
Contributor

I assume you guys are both using Windows 7.. do you have any framerate stuttering playing back 1080p video?  Either recorded from WMC or from a ripped Blu-Ray?

Did you get DXVA working?

Sounds like HDCP still isn't working because it is trying to use the other video card?

Are you using optical/HDMI out for audio or analog out?

Reply
0 Kudos
GBowman
Contributor
Contributor

Yes windows 7 Home 32 bit, I am sure DXVA is not working on either of my machines.  I can only use some codecs others will hang or just give a green screen.  Flash has to be set to not use hardware acceleration or it is just sound and a green screen.

I originally had just 2 cores on my 'front end' VM and this was not up to playing 1080p but now I have assigned it 4 cores it works perfectly on all I have tried, amazingly its not even at 50% over all use so I dont know why it wont work with 2 cores but the other test machine I have is only 2 cores total and it will only play 720p's smoothly (plays 1080p fine when booted straight to windows but probably using DXVA not CPU).

HDCP is a no go and even if it did work I cannot find a peice of software that supports bluray and does not hang up or give a message when it detects its running on a VM.  Kind of fair game as they license the BluRay facility and have to show they are protecting it.  Virtual devices have been used in the past to overcome copy protection.  A lot of early NoCD cracks for games used Virtual CD drives.

I am using the onboard HD audio and analogue out.  I got problems using the Radeon audio but dont have an HDMI audio amp so didnt bother investigating further.

Also got Trixbox working perfectly now on the same machine with a hardware telephony card, I can game or watch 1080p with no problems the phone still works.

Reply
0 Kudos
derickso
Contributor
Contributor

So the HDCP software you are referring to actually managed to detect it is running inside a VM?  I have no idea why they would care, that seems bizzarre.

Reply
0 Kudos
GBowman
Contributor
Contributor

Yes, I used AnyDVD free trial to remove the HDCP issue but then Cyberlink PowerDVD crashes on a VM after it has updated itself to allow BR playback.  WinDVD actually pops up a box saying it will not continue to run under a virtual environment (both with and without AnyDVD running).  As I say the reason they care is because any virtualisation could be a way of ripping BR discs and in order to be trusted with the license they have to prove they are doing all they can to stop any form of copy protection circumvention.

DVD's wont play in mediaplayer either due to copy protection issues and with AnyDVD running they are very stuttery.  They play fine in VLC though as this cares not for copy protection.

Reply
0 Kudos
derickso
Contributor
Contributor

I don't understand the reply, how could running in a VM be a way of ripping a blu-ray disk?  It doesn't give you any more introspection than you already have as admin of the OS..

Reply
0 Kudos
taylorjonl
Enthusiast
Enthusiast

I have some good news and I have some bad news.  The good news is I now have a fully virtualized HTPC with three devices passed through, the bad news is I had to abandon ESXi.  I have this working on Xen.

In order to get this working I had to pass through three devices, the VGA card, the InfiniTV card and the network card.  I initially tried just the VGA and InfiniTV card but I found that when an XBox tried to connect the VM would crash, I am assuming it does something fancy with the network card that the emulated drivers don't support.

The VM actually performs quite well, when I ran the Windows Experience Index it got:

Processor 7.2 out of 7.9

Memory 7.7 out of 7.9

Graphics 7.0 out of 7.9

Hard Disk 5.9 out of 7.9

The hard disk performance will get better, at this time I am using the flat file model for disks but you can use LVM and get better performance.  When I do a 'hdparm -tT /dev/sda' I get 350MBps, so I assume the Hard Disk score will jump to close to 7.9.

This setup was a proof of concept that it will work, I am going to work on getting it finalized and will post instructions.  I am not sure if I can post them here, being that they are for VMware's competitor.

Woot, I am so excited, I can finally move on and finish setting up my server.  The specs of the system are:

1x Quad Core Xeon E5620 CPU

3x 4gb DDR3 SDRAM (12gb total)

1x ATI Radeon 5670 GPU

1x Areca ARC-1680IX-24 RAID controller

24x 2tb Seagate HDD

4x Intel Gigabit NIC(onboard)

2x Ceton InfiniTV tuner cards(8x total tuners)

So exciting to get this working Smiley Happy

Reply
0 Kudos
derickso
Contributor
Contributor

Thats awesome, can you comment on whether DXVA and HDCP work?  Any stuttering on 1080p video?  Does your audio come through clean?

Also what OS is hosting your RAID and how are you sharing it through to Windows?

Reply
0 Kudos
GBowman
Contributor
Contributor

HDCP has to make sure its running on a secure hardware layer, the use of virtualisation abstracts this.  Makers of HDCP compliant software pay for and are trusted with the license to do what they do so have to comply with the strict HDCP requirements.

Reply
0 Kudos