Jump to content

What is the state of getting Quartz Extreme to work?


76 posts in this topic

Recommended Posts

VMsvga2 v1.3.0d1 v1.3.0d7 Development Preview Edition

with hardware OpenGL support.

 

Host Requirements

  • VMware Workstation 7.x with 3D Acceleration and Screen-Object enabled. Set your guest vram size to at least 32MB.
  • Don't ask me if the GL driver works on Fusion or Workstation/Linux. Test it yourself. I don't have those platforms set up. VMware's SVGA3D API is modeled on Direct3D, so it works fairly smoothly. On other platforms, it's implemented using an OpenGL host driver, and some features may not map well.
  • The VMware host must have a Direct3D or OpenGL driver that provides access to the GPU. If you run a standalone VMware kernel without a host OS, I don't think 3D Acceleration is available [someone correct me if I'm wrong].

Guest requirements

  • OS 10.6.3 or Above.
  • AppleIntelGMA950GLDriver.bundle must be installed in /System/Library/Extensions [This is normally the case].

Applications Tested

  1. VLC Video Player. Seems to have everything it needs and works 100%.
  2. Preview for OS 10.6.x. Seems to have what it needs. Uses pipeline fences occasionally which aren't implemented. All fence waits return immediately, so it doesn't hang.
  3. Apple's Finder works. It uses OpenGL for its icon and "Cover Flow" views. In fact, it does some tricky depth-buffering and alpha-blending in the "Cover Flow" view, which helped quite a bit in figuring things out.
  4. Flash Prayer 10.1r102 works. It calls CGLQueryRendererInfo(), rejects the renderer and then proceeds to render in software :(
  5. QuickTime X works. It also rejects the renderer and proceeds to render in software.
  6. iTunes works. Uses legacy IOQTCompoments for video which uses YUV overlay. No GL.
  7. Chess - the only 3D game I tried. The initial board is drawn, although lighting and mipmapping detail is missing. The game itself doesn't play due to unimplemented GL features.
  8. The WindowServer's GLCompositor (aka QuartzExtreme) - not even close. The screen is all-black. It's also quite a stress test, as it creates about 50 textures right off the bat. The system responds to keystrokes and mouse clicks, so it can be shut down safely if you know the sequence. QE also uses a couple of untested texture types, and whatnot. A lot of work still to do for that.
  9. I also tried some 3D sample from Apple's OpenGL sample collection, and it worked in part, failed in part due to missing features.

Notes

You may notice the screen flashes occasionally. Everytime this happens there's a message in vmware.log "detaching from window system... connecting to window system". This happens after the driver creates its first Direct3D9Device (in response to the first application to use GL), or after the driver destroyes its last D3D9Device when the last GL application closes. The MKS backend switches between rendering with GDI to rendering with Direct3D and vice versa. This causes a brief blank window.

 

Kernel Flags

  • "-vmw_no_gl" disables the GL driver. VMsvga2 will still operate as in version 1.2.x.
  • "-vmw_qe" enables QuartzExtreme. QE doesn't work, but if you want to see for yourself :)

 

This driver is still a work in progress. There are many unimplemented GL features - FBOs, pipeline fences, mipmapping, cube-maps, volume textures, fog, misc render states, pixel shaders, etc. If an application attempts to use them, it may fail in part or in whole. The driver hasn't been fully optimized yet either, so some things don't work as efficiently as they can be made to.

 

As for the guest vram requirement - the driver supports VMware's GMRs, which means it can do memory transfers to or from host vram from anywhere in guest memory, not just the vram. I plan to eventually rid the driver of all dependence on guest vram, so it will work with the minimum allowed of 16MB guest vram. Right now the driver still needs some extra guest vram for buffering render targets and vertex arrays. Textures [which can be quite big] are not buffered in guest vram - which reduces guest vram requirement quite a bit.

 

Update [Jan 12]: Uploaded VMsvga2 v1.3.0d2 and updated link.

Update [Jan 14]: Uploaded VMsvga2 v1.3.0d3 and updated link.

Update [Jan 17]: Uploaded VMsvga2 v1.3.0d4 and updated link.

Update [Jan 18]: Uploaded VMsvga2 v1.3.0d5 and updated link.

Update [Jan 19]: Uploaded VMsvga2 v1.3.0d6 and updated link.

Update [Jan 23]: Uploaded VMsvga2 v1.3.0d7 and updated link.

 

Where to get it?

An installation package can be found here (SnowLeopard only). I'll update the development version occasionally as it proceeds.

 

How did you figure out that the apps used software rendering instead of open gl and how did you figure out the apps functions too because I want to see how I can help continue your driver?

Link to comment
Share on other sites

 Share

×
×
  • Create New...