I try to use VMs on my developer box at work, but I have been always annoyed with what I felt was “choppiness” or “chunkiness” in the guests’ rendering rate. I asked around, and I found out that this was actually configurable.
The parameter is svga.maxChangeTick, and it can be set in the .vmx file of a VM (make sure to power off or suspend first). It controls the rate at which the host side polls the communication channel to the guest’s virtual SVGA device to check for new screen changes from the guest.
The default value of this variable is 4. The value is divided into 100, and the result is used as a update frequency. So 100 / 4 = 25 hz.
Anyone who’s played an FPS knows that you can feel the difference between 25hz and 50hz. It’s unclear whether you can actually see more, but 50hz definitely feels more “smooth”.
To set your update rate to 50 hz, try putting a svga.maxChangeTick = "2" in your .vmx file. You can also try “1” (it has to be a positive integer value) for very frequent updates, but I didn’t really see too big of a difference in my experimentation.
The downside to this is that because you’re polling for updates more frequently, you’re more at risk of seeing “intermediate” drawing state. For something like WinXP, especially, because apps draw straight to the front buffer, you never know if at any point in time the contents of the screen are in a ‘consistent’ state (i.e. did a guest app just finish a complete rendering pass?). The more frequently you try to synchronize with the guest, the more likely that you may synch up with the guest while it’s in the middle of drawing something.
But even in this case, this ‘inconsistent’ state only last for a mere 20ms (when updating at 50hz). Usually short enough that it’s not bothersome. YMMV. I vastly prefer the effect that my VM feels like a native machine. The apps are still slower than native, but the rendering latency and general “smoothness” are much closer to real hardware.
You’re also going to burn more CPU on the host, but when you’re just dragging windows around, CPU is usually one of the last things you’re worrying about.

Leave a comment

Your email address will not be published. Required fields are marked *