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?
No, you're not off base. This is actually possible via various techniques, and is in fact on the roadmap for Parallels. Your point about the narrow range of video cards that would need to be considered on the Mac OS X version, because of being tied to Apple hardware, is also a good one. This isn't a small task, but it is doable. There are also features of the larger VT featureset that allow for virtualization of more things on an Intel chipset motherboard than just the CPU. We can be sure that Parallels is considering these possibilities.
Thanks for the positive feedback daveschroeder. It's nice to know that this is doable and on the roadmap. Having virtualization support for the Mac graphics cards would be fantastic!
: Hello, I have been using my friends Parallels on his mac, I think its great and wish to buy it myself but one thing is stopping me. We cant get parallels to recognise his Video card. He is using a 20" standard spec imac. We tried to run a game in there which needs a 64meg video card, the imac has 128meg but windows inside parallels is saying we have zero. We have tried to install the ATI radeon 1600 driver but windows says we dont have the neccessary software or hardware for the install. Can you please help?
Umm! Your list of two video cards is off base. The Mac Pro comes with three card options, none of of which are in your list.
Parallels doesn't provide access to the actual video card in the machine. It emulates a much older, less advanced card. The bottom line is that you can't run anything which requires 3D graphics (i.e., games). Parallels has said that they would have a solution for this in version 3.0, due out some time early this year.
This would have to be my most highly anticipated upcoming feature. Once they implement this, I'll really have no reason to boot directly into Boot Camp anymore. Integration complete, bye bye Windows exclusivity!
It might already be possible... It might already be possible, Maybe. I dug up references to some software called Swiftshader , along with claims that it seemed to work. they were all in and around about April however. Since then comment as been notably absent. A point I find somewhat worrisome. It's supposed to be a software version of directx 8 and 9. It is apparently pretty quick. I suspect because Microsoft is famous for writing some of the most inefficient and crufty code in the history of the world. I've heard of rewritten Microsoft utilities with 70% size reductions and doubled performance the claims were that it was really quite speedy, but had occasional glitches. For one thing it would run only one instance of emulation, whatever that means. I certainly have no idea. I downloaded the demo and got the small demos to function. there is some sort of Max Payne thing that may or may not go ( I don't own the game so I can't test it) There is implication on the company website that the demo is fully functioning. I tried to install the demo with Neverwinter nghts 1, which crashed and burned. I may have done it wrong though. They have a total of three lines of installation instructions. Right now I have to label it rumorware.
This is all doable and actually NOT that complex or involved. Do we have any clear statement from Parallels about the timeframe for this implementation? It is critical for my use of Parallels and is currently one of two factors that makes Boot Camp still a preferred environment for my development work at this time.
OK, here's some news -- at least for me. I've been playing around with Coherence Mode and the various Customize options, including Use multiple displays. Essentially it DOES replicate the Windows extended desktop with two notable exceptions. 1. The Windows Display adapter settings do NOT reflect that an Extended Desktop is in effect. To all intents and purposes it appears that there is ONLY a single desktop but the screen resolution will give the total pixel count for useable "Windows" use. 2. Item 1 means a number of things, one of which is somewhat serious. The Windows "emulated" Extended Desktop environment must be a single rectangle under this kind of scenario. If you have Mac Displays of two different sizes then you will have "holes" in the virtual Extended Desktop in Windows when using the current implementation of Coherence/Use mutliple displays. A related problem is that CPU usage goes to 100%. I believe this is because of how Parallels has written the video driver. If the functionality of that driver were extended just a little bit, it would be a great addition. This would involve rewritting the video driver so that it used native hardware routines and not just VESA; doing that part of the job correctly would allow for more varied extended desktop environments, eg ones in which two differently sized rectangles are joined together.
Video Card emulation is quite difficult... Virtualization is even more. My thoughts: 1. Emulated Graphic card which is compatible with e.g. an ATI XYZ or so: Use the original driver of the card, then implement a virtual card. I searched a long time for a inteface description of a graphic card but I couldn't find anything (only the VESA thingy). I think they would be all closed-source and therefore not emulatable. 2. Emulated Graphic Card which is made up by Parallels (let's call it "Parallels Direct X Card"): Write the driver on your own, the card of course too... Unless you add all the APIs of Direct X / Direct 3D & the other thingies it will be mostly useless. Be sure the game you'd like sureley uses an exotic call which will not be in the standard set (and believe me, DirectX is a beast !). 3. Emulated Card with OpenGL support. There's a tool which is called Ogre (don't have the link at hand), which could be used as base. Ogre is a tool to grab OpenGL objects from e.g. games or so. It is palced in the games directory, so it will be used when the game starts. It then captures everything into a file and sends the OpenGL calls to the real OpenGL.dll in the windows-directory. Parallels could use a modified version of Ogre to capture the OpenGL calls and send them outside to the host OS to handle. Sure some work, but it could work. Downside: Which app uses OpenGL ??? So... No emulation, eh ? Lets talk about passing-through: 4. Virtualization of the Mac-Card in windows: Sounds nice, and some might think it's easy, but it isn't! Parallels can *never* pass through to the hosts GraCard, because there is no such thing as VT of an ATI-Card (or at least in no card available right now). Windows would require to initialize the card during boot, so you would end loosing the card on the macs side. So the window which will contain Parallels will be suddendly gone... Whoopsy ! No two system can initialize and access the same piece of hardware at the same time. Or have you ever seen two people on the same phone talking to two different locations at the same time ? 5. So what about a mini-pass through ? Just take a directX command and render it somehow with the card ? Sounds simple, but I'm sure it isn't. The card in the mac will be initialized as "OpenGL" to run Mac OS X under full steam. You can't just pass a direct X instruction to such a card. (Unless the card would be initialized as direct x and the OS X would be using a OpenGL to DirectX conversion, which is quite unlikely). Did I forget anything ? My bet ? I would bet on 2 or 3. 3 is too simple and limited so I would prefer number 2... My solution ? If your game isn't too resource hungry and "new" you could try to install Microsofts Direct X SDK, then enable the "Enumerate Rasterized Renderer" (or something like that) to let windows try to use an direct x-emulation (painfully slow but at least it works (together with 3danalyze I even got the Benchmarking tool of FFXI to run (but painfully slow))) Cheers Uezi
Difficult -- I don't think so ..And I don't think so because the current implementation is actually quite close to completely addressing the problem. A little bit of tweaking in "capturing" the display attributes (which is native to OSX) and the emulated desktop can be matched to those attributes. Essentially this is what's being done in the current implementation -- completely so for the x axis of the extended display. However, the y axis of the extended display inherets ONLY the y dimension of the primary monitor which, in my instance, is smaller than the y axis of the resolution available (and active) on the secondary monitor. My app isn't a game so NO "odd" calls, in fact it ONLY uses standard Windows addressing for the "system available" video -- pure AC 97 etc compatability.
I would like to see this roadmap I keep hearing about which contains DirectX support. Does anyone have any formal statements from Parallels via a URL or other format? Thanks!
Well i dont know how parallel plans to do it. As currently i am not aware of good and simple easy technique that could do pass through. However the recent announcement of PCI - Express 2.0 has a feature called Virtualization I/O which allows VM to communicate directly to PCIe 2.0 hardware. May be that is what Parallel is waiting for? http://www.betanews.com/article/Why_PCI_Express_20_Could_Drive_Down_OEM_Costs/1168966799 Read end bit of the article.
Yes. But did they ever mention that 3D Graphics Acceleration will work on existing hardware? It would be nice if it is a yes
If it doesn't, it won't be worth very much. All they've ever said is that they're working on it for version 3.0. (I.e., they've already started implementing it which means it can't rely on hardware that's not available yet.)
Yes, if you know anything about hardware and virtualization, it is VERY difficult. How do you get Windows under Virtualization AND Mac OS to use the same graphics chip for 3d? It is not simple. We are talking an extremely difficult task. NOTHING in the current implementation is close. Not even a hundred light-years close. It is easy to write a 2D virtualizer. 3D is totally different. Think about this - if its so easy, then why is it only in "experimental phase" by the most well known virtualization company in the world - VMWare - running under Linux for a long time? And even when or if Parallels gets it done, expect it to be: 1) Buggy due timing issues 2) Slower than BootCamp (i.e. say you get 60 fps in BootCamp, I wouldn't be surprised to see 30-40fps in Parallels) 3) Some limitations exist
I think it hasn't been deployed yet -- or perhaps even alpha-developed -- primarily because those involved are waiting for i/o virtualization. That does make the process far simpler. The second major reason was a question of actual market value/share -- ie just how many customers out there really want and are willing to pay for this kind of feature? The answers to both of this issues are beginning to emerge now and the rest will follow, probably as quickly as possible -- because the market IS there now, esp for Windows users who want to straddle Mac and Windows.