Jump to content

VMware SVGA II display driver for OS X, v1.2.5


  • Please log in to reply
242 replies to this topic

#1
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male
VMware SVGA II display adapter driver for OSx86 Leopard running as a VMware guest.

Version 1.1.0

Framebuffer features
1. Set one of 13 pre-canned display modes from System Preferences/Displays pane.
2. Hardware mouse cursor support.
3. Support for VMware's fit-guest feature via a modified vmware-tools-guestd from Darwin.ISO Tools 2.0.5.
4. Optional EDID injection via Info.plist (see docs).
5. Can work standalone without the Accelerator component by using a refresh timer for framebuffer
updates, or VMware's SVGA_CAP_TRACES if available on the host.

Accelerator Features
1. Accurate framebuffer updates and FIFO synchronization when rendering with VMware's legacy 2D backend (uses GDI, etc).
2. Supports rendering with VMware's Direct3D/OpenGL backend - activate this with a Darwin boot option "-svga3d".
2. Supports framebuffer blits for moving windows around, using either the 2D or 3D backend.
3. Hardware video overlay support when playing movies in QuickTime/iTunes.

Upsupported features
1. 2560x1600 display mode.
2. Hardware OpenGL Acceleration (GLD Plugin).
3. multi-monitor.

Credits:
- VMwareIOFramebuffer.kext from Fusion 2.0.5.
- GeForce.kext, GeForceGA.plugin from OS 10.5.8.
- VMware's reference SVGA implementation on http://sourceforge.n...cts/vmware-svga.
- xf86-video-vmware-10.16.8 from X.Org.

Edit (10/25/2012): See post #158 for an update.

Link to Installation Package
Link to Docs
Link to Sources
All Project Files

#2
morfy

morfy

    InsanelyMac Legend

  • Members
  • PipPipPipPipPipPipPip
  • 890 posts
Work on vmware fusion 3 and SL?

#3
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male

Work on vmware fusion 3 and SL?

If you mean to ask whether it can work when the HOST is SL running Fusion 3, then I don't see why not. The driver is intended to work with any VMware host, although some of the more exotic features may fail. The driver is designed for a guest OS 10.5.x, and is built only for 32-bit. I haven't tested it on guest OS X Tiger, and certainly not on guest OS X SL. I haven't seen any distros of SL that run as VMware guest (except possibly retail running under Fusion.) I've been unsuccessful myself in my attempts to build a SL kernel that runs as a VMware guest. I also haven't tried building the driver for 64-bit, not even on Leopard.

PS: If you're not sure, you can make a snapshot of the guest VM, try installing it on the guest, and if it doesn't work - revert to snapshot.

#4
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male
I've completed a port of VMsvga2 1.1.0 to SnowLeopard - 32/64 bits. There's an installer in the files section under Display/SnowLeopard.

If you have a version of VMsvga2 dated Oct 2 that came with vmsl.tar.gz, you're encouraged to upgrade. That version was done in haste and had some portability bugs that weren't immediately obvious (the 3D renderer and video overlay didn't work at all.)

Don't mix the Leopard and SnowLeopard versions. Neither can run on the other system. The reasons are different, but they're all due to 64-bit portability issues.

Quicktime X doesn't use the hardware video overlay capability. The reason being that it's a 64-bit app. The video overlay is done using IOQTComponents, which is a 32-bit only library. I don't know if Apple is planning to migrate this component to 64-bit or if they consider it deprecated. iTunes 8 & 9 are still 32-bit apps so they can use this library and the video overlay.

I've separated the vmware-tools-guestd fit-guest patches to a different file - guestd_patches.tar.gz. There are patches there for VMware Tools from Fusion 2.0.5 and 2.0.6. I don't have patches for snowy-darwin from Fusion 3.0 yet.

#5
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male
I've uploaded VMsvga2 version 1.1.1.

Changelog from 1.1.0 to 1.1.1
=============================
  • Added three more display modes - 1920x1440, 2048x1536 and 2560x1600.
    • The mode list is trimmed to resolutions supported by the host, so not all modes may appear.
  • Fixed blit bugs affecting window motion in "-svga3d" mode on VMware Workstation 7.
  • The Leopard version of VMsvga2 impersonates VMwareIOFramebuffer, so it's no longer necessary to patch VMware darwin Tools from Fusion 2.x to get fit-guest support.
    • This feature is not available in the SnowLeopard version of VMsvga2. Apple made a change to IOKit in OS 10.6, so the impersonation option doesn't work.
  • Fixed the shutdown procedure so it's possible to see changes in the display made after the WindowServer shuts down.


#6
saivert

saivert

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
great work.. I can now move windows around just fine.

But performance using -svga3d is worse than without.
The user interface just feels a bit more sluggish. It should be faster since it's using 3D graphics hardware. I dont't know why it is like this.

EDIT 1: I still had VMWareGfx kext installed though, maybe this is screwing it up. I will try to remove it and reboot and see what happens.

EDIT 2: That only seem to have sped up the boot and run the fit guest on the login screen(with both VMsvga2 and VMwareGfx installed it ran the fit guest on login). Still not as fluid user interface as I would like. I'm running Windows 7 with Aero in Workstation 7 with much better performance, so the lack of 3D horsepower is not the issue.

EDIT 3: Also ever since installing Snow Leopard I have lost the ability to take screenshots within Mac OS X. I have to use the VMWare Workstation screenshot function instead.
Look here for an explanation:

Posted Image

#7
iSnatch

iSnatch

    InsanelyMac Protégé

  • Members
  • Pip
  • 11 posts

EDIT 3: Also ever since installing Snow Leopard I have lost the ability to take screenshots within Mac OS X. I have to use the VMWare Workstation screenshot function instead.

I can't see any picture with Preview on SL. Seems like a bug in vw7+sl. With quick preview(press space) everything ok.

#8
saivert

saivert

    InsanelyMac Protégé

  • Members
  • PipPip
  • 71 posts
confirmed iSnatch

Check my post in VMware Mac OS X Guest Package for ESX, Workstation, Player, Server and Fusion

#9
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male
Screen Capture Problem

This is Apple's handiwork.
  • In OS 10.5, Apple implemented the screen capture by reading the image from the framebuffer, so any IOFramebuffer driver could do it.
  • In OS 10.6, they no longer read the image from the framebuffer. Instead, they use an acceleration feature called a CGSSurface to grab the image. As a result, plain IOFramebuffer drivers (NDRV, VMwareGfx) can't perform the capture anymore. Of course, Apple doesn't care since they have IOAccelerators for all their hardware.
VMsvga2 supports CGSSurfaces in -svga3d mode. The support isn't complete - it's not developed enough to make the capture work. It returns an error midway, which causes the capturer to generate a black image. I've made a checklist item to develop the surface support in VMsvga2 under -svga3d a little more so the capture can succeed. I'm not sure whether I'll implement this capability in 2D mode. I plan to eventually make "-svga3d" the default mode, once the performance problems there have been ironed out.
Anyhow, I don't have an immediate solution for this. You'll have to make do without screen capture in OS 10.6 for now.

#10
nfshp253

nfshp253

    InsanelyMac Protégé

  • Members
  • PipPip
  • 94 posts
How to enable svga3d? Can I put it in com.apple.boot.plist? What should I do? Should I put in under Kernal flags?

#11
trinity333

trinity333

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
Hello,

I have installer Mac OS X 10.5.8 under ESX vSphere 4.0.
I have installed the SVGA II display driver for Leopard v1.1.1.

The max resolution available is 1152 x 864.

How can i have 1280 * 1024 or 1680 * 1050 available ?

Thank you.

Best regards.

___________________________________________________

Resolved, i have increased the vram of the virtual appliance.

#12
luckman212

luckman212

    InsanelyMac Protégé

  • Members
  • Pip
  • 49 posts

How to enable svga3d? Can I put it in com.apple.boot.plist? What should I do? Should I put in under Kernal flags?

hello, i would also like to know this answer! i have installed SL 10.6.1 inside vmware7 final (Win7 host) and it runs, but I don't think 3d is enabled. Gfx running very slow and mouse cursor shows up as a black square inside AppleRemoteDesktop sessions. :P

#13
Ferris Bueller 2.0

Ferris Bueller 2.0

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 3 posts

Screen Capture Problem

This is Apple's handiwork.

  • In OS 10.5, Apple implemented the screen capture by reading the image from the framebuffer, so any IOFramebuffer driver could do it.
  • In OS 10.6, they no longer read the image from the framebuffer. Instead, they use an acceleration feature called a CGSSurface to grab the image. As a result, plain IOFramebuffer drivers (NDRV, VMwareGfx) can't perform the capture anymore. Of course, Apple doesn't care since they have IOAccelerators for all their hardware.
VMsvga2 supports CGSSurfaces in -svga3d mode. The support isn't complete - it's not developed enough to make the capture work. It returns an error midway, which causes the capturer to generate a black image. I've made a checklist item to develop the surface support in VMsvga2 under -svga3d a little more so the capture can succeed. I'm not sure whether I'll implement this capability in 2D mode. I plan to eventually make "-svga3d" the default mode, once the performance problems there have been ironed out.
Anyhow, I don't have an immediate solution for this. You'll have to make do without screen capture in OS 10.6 for now.


Oh so that explains it! Thanks for making note of this. That explains why in 10.5.7 I can take screenshots using the certain hotkeys and they work. In 10.6, neither the hotkeys work or the new application(s) I found in the utilities folder, called grab it or something like that. When I had Snow Leopard, pressing the hotkeys would not even make an image file appear on the desktop at all. Nothing would happen. I initially thought they screwed up with SL and the 10.6.1 update fixed it (but I couldn't update since it wasn't a retail install)

Anyway I just went back to 10.5.7 because I was having other issues too. Applications that once ran fine would crash.

I'm not using vmware though, but even just SL actually running on a machine is the same way.


How does this driver work? I mean, no matter why kind of a video card you have, this driver will work to provide hardware supported graphics acceleration (in a vmware host of course)? Or do I have the wrong idea?

#14
Andrew327

Andrew327

    InsanelyMac Protégé

  • Just Joined
  • Pip
  • 1 posts
Any support for HD panels, 1920x1080.....

And thanks for the drivers, really helpful :P

#15
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male
FYI, I've uploaded a new guestd_patches with a patch for darwin VMware Tools from Fusion 3.0 - libresolutionSet.dylib dated Oct 23.

#16
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male
I've posted VMsvga2 Version 1.2.0.

Changelog from 1.1.1 to 1.2.0
  • Added four more display modes
    • 1920x1080, 1280x960, 1280x768, 1280x720
    • The modelist is now more or less in line with the Windows and Linux guest drivers except for a few odd modes.
  • VMsvga2 now supports the Screen Capture (Screenshot) feature on OS 10.6.
  • Added support for the new Screen Object feature of Workstation 7/Fusion 3.
    • The presence of Screen Object obsoletes the "-svga3d" option. With Screen Object, the driver will automagically select the best rendering sequence for each function.
    • For a VMX file with guestOS = "darwin..." the Screen Object feature is on by default.
    • For a VMX file with guestOS = "freebsd...", Screen Object needs to be enabled. Add the following lines to your VMX file
      svga.enableScreenObject = "TRUE"
      svga.enableTracesReg = "TRUE"
  • Enhanced the support of CGSSurfaces for Apple applications that use them outside the OpenGL framework.


#17
radam

radam

    InsanelyMac Protégé

  • Members
  • Pip
  • 18 posts

I've posted VMsvga2 Version 1.2.0.

Changelog from 1.1.1 to 1.2.0

  • Added four more display modes
    • 1920x1080, 1280x960, 1280x768, 1280x720
  • VMsvga2 now supports the Screen Capture (snapshot) feature on OS 10.6.
  • Added support for the new Screen Object feature of Workstation 7/Fusion 3.
    • The presence of Screen Object obsoletes the "-svga3d" option. With Screen Object, the driver will automagically select the best rendering sequence for each function.
    • For a VMX file with guestOS = "darwin..." the Screen Object feature is on by default.
    • For a VMX file with guestOS = "freebsd...", Screen Object need to be enabled. Add the following lines to your VMX file
      svga.enableScreenObject = "TRUE"
      svga.enableTracesReg = "TRUE"
  • Enhanced the support of CGSSurfaces for Apple applications that use them outside of the OpenGL framework.


Thanks Zenith, this update improves rendering even more!

#18
Zenith432

Zenith432

    InsanelyMac Sage

  • Developers
  • 420 posts
  • Gender:Male

Thanks Zenith, this update improves rendering even more!

The new Screen Object in Workstation 7/Fusion 3 is really great and helps solve all of the problems that existed with SVGA3D.

Now if I could only crack Apple's labyrinth of OpenGL drivers.... ;)

#19
luckman212

luckman212

    InsanelyMac Protégé

  • Members
  • Pip
  • 49 posts
I had a 10.6 installed in VMware 7 on a Win7 x64 host, was working just fine. I installed the new vmsvga driver and my system would no longer boot. I got a bunch of these errors in my vmware log:
Nov 08 15:51:37.019: vcpu-0| Guest: IOAC: VRAMRealloc(0, 5242880) failedNov 08 15:51:37.025: vcpu-0| Guest: IOAC: VRAMRealloc(0, 5242880) failedNov 08 15:51:58.112: vcpu-0| Guest: IOAC: VRAMRealloc(0, 5242880) failedNov 08 15:51:59.996: vcpu-0| Guest: IOAC: VRAMRealloc(0, 5242880) failedNov 08 15:52:13.116: vcpu-0| Guest: IOAC: VRAMRealloc(0, 5242880) failedNov 08 15:52:19.437: vcpu-0| Guest: IOAC: VRAMRealloc(0, 5242880) failed
I found a solution, it was to enable the following option:Posted Image

Is this completely normal?

#20
radam

radam

    InsanelyMac Protégé

  • Members
  • Pip
  • 18 posts

The new Screen Object in Workstation 7/Fusion 3 is really great and helps solve all of the problems that existed with SVGA3D.

Now if I could only crack Apple's labyrinth of OpenGL drivers.... :)


Mmm... would that enable qe and ci?

Also have you had any luck with your Ensoniq Audio plugin and the slight stuttering issue?





2 user(s) are reading this topic

0 members, 2 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy