5

All of my machines are Macs (Mac Pro, MacBook Pro, MacBook Air and Mac Mini (and Apple TV 2.0 too! :) ) but for my day-job, I develop .NET/WPF applications. Normally I just boot into Boot Camp and develop that way, which of course works great, but there are times when I need to simultaneously get to things on my Mac-side of the equation, so I've bought both VMware 3.1 and Parallels 6. Both work, however, even on my Mac Pro where I paid to upgrade to the better video cards (the NVidia 8600s I think vs. the stock ATI cards) the WPF performance bites!!

Now this confuses me since both boast that they support not only hardware-accelerated OpenGL 2.1, but also hardware-accelerated DirectX 9 (VMware even allegedly supports DirectX 10!) via their respective virtual drivers and both can run 3D games just fine, even in a window. But even the simple act of resizing a WPF window that has a tiled background results in some HIDEOUS repainting and resizing behaviors. It's damn near closer to what you'd expect over RDP let alone a software-only renderer (forget accelerated hardware completely!)

So... can anyone please tell me WTF WPF is doing differently? More importantly, how can I speed up the WPF performance? Should I switch to VirtualBox that also has support for DirectX? Or am I just gonna have to 'byte' the bullet (sorry... had to. So I like puns! Thank Jon Stewart!) and continue using Boot Camp?

4 Answers4

1

I know for a fact VMWare has certain extensions, or drivers, that you can install to increase performance; try those. As an extensive user of VMs myself, their performance can't match native speeds; just get used to it. I tried programming in VMs, then I got sick of it and got another computer, one for Windows, one for Linux.

Alec
  • 1,499
0

Try this !!

Install and play any one of the latest PC games (Call of duty, NFS, etc) on your VM, since almost all PC games makes use of DirectX. These games are the perfect test for your hardware and underlying software as-well.

If the game play experience was not good, then there should be some problem with VMWare/hardware. If not, then it might likely to be problem with WPF itself. I remember reading somewhere that WPF is having few known performance issue under Citrix environment. hence there is chance that the problem you are facing might be related to that as well.

Karthik
  • 101
  • 2
0

I think there's a fundamental misunderstanding of VM technology here. A VM can never completely pass through information to physical hardware without a layer in between. When you're 'running' DX applications, they're getting run on a virtual video card, that, if you're lucky is having its output accelerated by hardware(so direct X -> virtual video card -> opengl-> actual video card), or if you're unlucky, software emulated (in which case everything runs on the CPU, which, naturally dosen't excel at such tasks- else we wouldn't need graphics cards).

In short, your fancy hardware isn't doing anything with respect to what's in the VM.Dualbooting is really the only way to make use of your video cards.

Journeyman Geek
  • 133,878
0

I've been a software developer for 27 years. (Yes, back when it was just text and color ascii characters...)

Today I'm a Sr. developer for Windows/Web/Mac, and do my primary coding on a MacBook pro (with two external monitors- DVI and USB).

While I do 95% of my WINDOWS coding (.NET) through Windows 7 on Fusion (VMWare). I still have a 100GB partition with BootCamp.

By BootCamp? You already know why, because you can't get full video performance through a VM/emulator.

Oh and BIG TIP --- Don't launch your Windows 7 BootCamp through Fusion, even though they say you can. Actually it'll foobar the Windows 7 license, and you'll be calling Microsoft to re-register (because it'll tell you it's an illegal copy of Windows...)