Tuesday, January 1, 2008

VMWare: Enable 3D Acceleration

Last updated: 2008-07-30

To enable 3D acceleration for a virtual machine:
1. Shutdown the guest OS AND exit VMWare Workstation completely. Even the guest OS is turned off, if you don't close VMWare, your changes will be reverted back.
Note: Do not enable Direct3D on a virtual machine when it is powered on or suspended

2. Open the configuration file (.vmx) with notepad or any text editor

3. Add the following lines:

(Reqired)
=======
mks.enable3d = TRUE
This line enables accelerated 3-D on the host. It is required to support accelerated 3-D in the guest and also enables the host to accelerate 2-D portions of the guest display.

(Optional)
=======
svga.vramSize = 67108864
This line increases the amount of VRAM on the virtual display card to 64 MB. Adding more VRAM helps to reduce thrashing in the guest. The maximum value is 128 MB.

vmmouse.present = FALSE
This line disables the absolute pointing device in the guest. Applications which require DirectInput relative mode need to turn off the absolute pointing device in the guest. In practice, this is only required for a certain class of full screen 3-D applications (for example, real-time games like first-person shooters).

Note: If you set the vmmouse.present option, you should also turn off the preference for motion ungrabbing in the Input tab of the Preferences settings dialog.

To turn off ungrabbing for vmouse.present:
1. In VMWare, click Edit -> Preferences
2. Under the Input tab, uncheck Ungrab when cursor leaves window

Ref: Enabling Accelerated 3-D for a Virtual Machine



Other things to double-check:
1. 3D acceleration is enabled on the host OS
2. Install the latest version of VMWare Tools on the guest OS


Ref:
Enabling Accelerated 3-D

7 comments:

Anonymous said...

Sorry, this doesn't work.

Eric Choy said...

Which version of VMWare are you running? What is the guest OS? Did you read the original post (see reference)?

Please at least tell us the steps you have taken if it does not work.

Iskandar said...

I've seen this exact instructions set everywhere while Googling "increasing vmware vram". It's not working for me. I'm running VMware ACE Edition, 6.0.2 on a Vista Ultimate x64 host with 4GB RAM. The guest OS is XP Pro Service Pack 2.

What happens is that VMware will overwrite the config (reverting to mks.enable3d = "FALSE") and ignore the vram increase config (System Information tells me it's still 16MB).

Just for diagnostics, I tried reducing the video RAM amount. Strangely I could reduce it to 1.88MB. Which is a pointless move, but interesting anyway.

Eric Choy said...

iskandar:

Sounds like you have VMWare (vmware.exe) running when you edit the .vmx file. I was having the same problem, VMWare reverted all my changes. You have to exit VMWare completely, even the guest OS is shutdown.

Other things which you might want to double-check (in case you haven't):
1. 3D acceleration is enabled on the host OS
2. Install the latest version of VMWare Tools on the guest OS

Ref:
Enabling Accelerated 3-D

Iskandar said...

Oh my, you're right. I had VMware Workstation running (but the guest OS turned off). The edits aren't reverted now after I turned off the program.

Hahaha.. I feel silly now.

Well, it works now, partially. I've gotten the VRAM up to the maximum limit and enabled 3D acceleration. dxdiag tells me it's working up to Direct3D 8. It didn't really pass the 3rd stage testing for Direct3D 9 (saw a vague shape of the spinning cube, logo not visible).

Thanks for the tips, Eric :)

Eric Choy said...

I'm glad it helps :D

Buy Windows 7 Home Basic said...

Great precise info, I've been searching on this topic for a while. Bookmarked and recommended!