Video Card Support in Mac OSX version of Parallels

Discussion in 'Feature Suggestions' started by TheRealDeal, Apr 11, 2006.

  1. TheRealDeal


    I posted this over in the "Parallels Workstation for Mac OS" forum but this is probably a better spot for it:

    Hi All,

    As per the FAQ, currently Parallels supports video in the following manner:

    "Parallels Workstation virtualizes VGA and SVGA with VESA 3.0 support video card."

    Now this makes sense when Windows is the host OS on a PC because the Parallels software is unsure of what the actual hardware video card is. BUT in the world of the Intel Macs where OS X is the host OS the hardware choices are much more contstrained.

    That is, currently, there are only 2 video cards to choose from:

    * ATI X1600 Radeon (iMac and MacBook Pro)
    * Intel GMA950 Integrated Graphics (Mac Mini)

    Now it stands to reason that Parallels could provide some sort of "pass through" virtualization of these cards (perhaps detected or chosen at installation time) becuase it knows that they are part of the underlying hardware. Surely this would be MUCH faster then emulating a generic VESA 3.0 card on top of them. The other benefit of this is that conceivably, for the ATI X1600 card for instance, the normal windows drivers could be downloaded (either from Apple or other sources) and installed in the Windows Guest OS.

    The result? SCREAMINGLY fast graphics in a virtualized environment! Hence 3D games playable from within Parallels!!!

    Am I off base here? I just feel that since the Mac platform is pretty stable and not much of a moving target from a hardware perspective, that Parallels could take advantage of this fact.

    What are the thoughts of the other forum members and Parallels developers?
  2. rangr


    Absolutely #1 on my wish list. Beta 3 is doing all I need it to do, with the exception of fast graphics handling. Native support for the Video card is all I need to delete Boot Camp!
    There'd then be no discernable difference between the virtual machine and a real one (to me at least...)
  3. dsmccrac

    dsmccrac Bit Poster

    If PW can get proper 3d video card support, I will be buying a lab of parallels licenses!

    I absolutetly have to have a lab of machines running software that uses opengl to do a lot of the rendering (world construction set) and it does run on parallels yet -- well it runs but it does not do anything!!

    I am sure this would be very popular with the gamers as well. Bootcamp is great in some ways but we a virtualization solution is way better for so many reasons.

  4. tgrogan


    I think the thing that is missing in your discussion is the fact that all of the drivers and video cards you refer to are proprietary. Some of the closest held secrets in PCs are the methods used to get 'screaming video performance'. Virtualization doesn't have a point to intellegently intercept bit streams from something that isn't defined to anyone but the owners.
  5. dsmccrac

    dsmccrac Bit Poster

    Some form of OpenGL support

    I am not quite certain of what technical issues are at hand with regards to video. That parallels is working as good as it does on the intel macs is amazing to me. So amazing that. perhaps, it extends my expectations to hope that some sort of 3d graphics capability, specifically opengl, can be incorporated.

    I have some packages that require some of the processing to be done by opengl. I really do not need "screaming fast" rendering, but at this point one of the few packages I need to run "world contruction set" will just not work without something handling the opengl.

    I am not sure if it is imposssible or just difficult <grin> but than again I thought it was impossible that we would have 2 ways to run windows at great speeds so soon after the intel macs were released ;-)

  6. Blaster



    "Additionally, Parallels announced that future versions of Parallels virtualization products will offer full support for Intel's next generation of hardware virtualization technology, Intel Virtualization Technology for Directed I/O (VT-d), which extends virtualization support into the platform by making it possible to robustly assign IO devices to virtual machines (VMs) in a virtualized system. This enables devices to be driven "directly" by the native/physical driver when assigned to a virtual machine, resulting in significantly faster virtual machine performance."

    There is also this discussion on the VMware forum:
    Last edited: May 1, 2006
  7. rjgebis

    rjgebis Kilo Poster

    Please add better 2D (faster) GDI+ support
  8. Macster2


    I'm not big on deep coding wether it be virtualization or native, but if Apple can release drivers for BootCamp for video and bluetooth, why can't PW. From reading threads here and there, word is you are programming at Root level. Is this possible. Can the drivers for Bootcamp be installed, or maybe reverse engineered? I'm just wondering, any explaination would be appreciated.
  9. joem


    In order to maintain isolation between the VM and host, sharing hardware must go through VM filtering. In the case of video, access to the screen must be limited to the VM window (if not in full screen mode) and that precludes giving the VM direct access. One has to assume that the VM will be used for testing things like viruses and other malware as part of developing defenses against it, and malware doesn't play nice with sharing. With Intel's support for device virtulization, in a future chip design, direct video may be possible, but for now it would be a security risk.

    (In My Opinion anyway)
  10. DaveP


    There has been a similar discussion for years on the VMware forums. The issue is virtualizing access to DMA, AGP etc. This isn't currently possible from what I read but VT-d will offer a way to acheive this.
  11. james_mac


    Is better graphics support on the "to-do" list for Parallels? or is it techincally not possible? It is definitely at the top of my wish list!!!
  12. Andrew @ Parallels

    Andrew @ Parallels Parallels Developers

    It is in our roadmap, but for this version.
  13. desh


    Did you mean to say that it was not going to be in this version? Will D3D support be in this initial release?
  14. deathshadow

    deathshadow Bit Poster

    Well, that's the difference... Virtualization instead of Native - Let's cut through the bullshit and come right out and say it:

    Under "virtualization", the sound card, video card, hard drive and most every hardware device except CPU are EMULATED - Be it VMWare, M$ VPC or Parallels. They just don't like to use the word emulation because of the negative speed connotation... :rolleyes:

    So unless they write a directX / OpenGL emulation layer to pass it to the host driver, it's very unlikely you'll see working 3d acceleration out of a VM on ANY host platform be it windows, linux or OS X.

    Me, hell, I'd be happy with voodoo 2 emulation.
    Last edited: May 8, 2006
  15. DaveP


    Yep pretty much sums it up. VMware do state this when you read around the forums etc. This is why Intel and AMD are now looking to virtualize other areas of PC design in addition to the processor; e.g. Intel VT-d.

  16. nonarKitten


    Virtual OpenGL GFX

    On the otherhand, the OSX OpenGL driver is more than adequate, and since OpenGL is largely interopable, it would make sense to simply pass functions through to the host OpenGL rasterizer - transforming where needed (e.g., screen to window, etc). There are DirectX wrappers for OpenGL that would then round-out most of the functionality of a video card driver.

    The only are of performancedom that VMs really hurt in is HDD I/O.
  17. TheZigPC


    Idea! <-- PCI host proxy for Linux to achieve native PCI bus access (for qemu) is my example here...

    Why not use some sort of kernel patch to get something similar done?

    If we are concerned about security why not come up with some sort of isolation that allows us to use a list of 'selected' PCI host cards for the VM to use? Those who want video acceleration can use a (second) video card the host machine is not using and just direct that (single) PCI/PCI-E device to the VM.

    Just an idea on this topic.
  18. perle


    I don't think that the video card could possibly be a vector for viruses or malware as some people have suggested; after all, it's a one-way trip from the CPU to the GPU.

    For those suggesting dual cards, you would also need dual monitors... not really an acceptable solution for most people.

    Zig, the PCI host proxy does not do what you think it does. It maps a particular PCI device into QEMU's hardware layer. It does not share the PCI device with the host OS.
  19. TheZigPC


    Thats what I am thinking, as dedicate the PCI device to the emulator not the host.
  20. danboarder


    Top of my list too - virtualized video and 3d

    This issue (direct video access for native 3D/video speed) is at the top of my list as well.

    Why can't Parallels work like other video or game software that bypasses the "2D" desktop layer?

    For example, in Windows many video apps, TV cards, and 3D programs pass-through the 2D windowing (GDI?) and show directly to the hardware... where "print screen" or screen grabs would not include the video or 3D area since it is not part of the native window environment.

    Does Mac OS have a similar ability to "pass through" hardware access for special applications? Where just the application pixel area of Parallels gets priority direct access to the Mac videocard hardware and does not get slowed down by the Aqua/Cocoa software environment...

    I wish I knew more about this and could countribute - I'm sure some FOSS hackers out there (like the VideoLAN VLC team) could contribute more toward solving this.

Share This Page