The ever reliable Brad Oliver over at the IMG forums notes that h/w graphics acceleration with VPC and OS/X is -
"just about impossible given that the hardware is shared with OSX and would cause a device contention at the low-level needed to tie it in to VPC"
and also
"Seriously, people have been on this kick about 'hardware 3d acceleration" in PC emulators for far too long, and expectations are totally out of whack with reality. Remember, if you will, what 3dfx emulation did back in the day - not much. You could play Tomb Raider 1 at so-so speeds, and that was pretty much it - most other games performed too slowly.
The largest bottleneck will always remain the actual CPU emulation. Even for games that aren't CPU-bound on the PC, the time spent doing CPU things takes up 30% of each frame for the best cases. When you run that same game through VPC, that 30% CPU time balloons out to the point where even if the graphics rendering took up 0% of the time, most games from the past 6-7 years would still run too slowly.
And that's all assuming that you can grab control of the video card without freaking out the Mac OS, as you could with the 3dfx card (since it had a totally separate frame buffer). Modern video cards don't work like that, so device contention is a major issue"
This comes from someone who seriously knows what he's talking about.
Interestingly, 'rpg' also adds:
"it will never happen. we would all love it for our emulation needs, but looks like it's not in the stars kids. an early build had native graphics card support, and actually played quake 3 at fairly decent speeds, but tons of other games had serious compatibility errors, or just crashed. and like brad said, there really is no way to rip control of a video card away from the os x kernel, without seriously messing up the os. as I take it, they were basically passing the directx commands straight to the silicon itself. there probably would be a way to do it by creating a safety layer that saved the current OS X framebuffer, before switching it over to VPC control, and then once VPC use was over, flushing the buffer and replacing it with the OS X state. problem is, what about crashes that jump back to the os X gui, etc. just too many issues to deal with"
So I guess we shouldn't hope for any miracles soon.
That makes sense. I wonder why M$ promised it if it can't deliver it due to the issues mentioned in the post I quoted?
Folks, M$ did the best it given the situation. Adding support for the G5 is no trivial task. Besides, it's not like VPC7 is without new features. It's a little faster (10-30%) and is Panther-ized. Although not a significant upgrade over VPC 6, for those of you still with VPC 5, it's a good upgrade.
How would it be for Apple if new PowerMac and iMac G5 buyers couldn't get VPC for another 8-12 months? How are they supposed to conviced switchers? Two years without any upgrade and leaving all of Apple's G5 customers without emulation would have been far far worse. M$ did the right thing by getting something out there ASAP. It was bad enough for folks with G5 to have to wait a year.
That's all fine and dandy but the point is:
if MS released 7.0 without planned features, are they going to release them as a free upgrade in 6-12 months or are they going to call it "VPC 8.0:What You Shoulda Gotten in 7.0" and charge you an arm and a leg for it.
Now if only we could convince M$ to sell off this product to a company like - oh, I don't know, how about Connectix? - that company might be able to cobble together a decent emulator.
Obviously, the billions of dollars M$ has cannot help them effectively generate a few lines of code to update something that was written from scratch by a relatively small-time operation that M$ just went and bought.
I know! How about including a real Intel-based computer with every copy of Virtual PC sold! How much are those things going for now? $99? With the bulk-buying power of M$, it's sure to be a big hit!
Um nef601 no. I have absolutely NO knowledge of 3D hardware or hardware in general or graphics or OS X or VPC or in fact pretty much anything, just a basic working knowledge of Macs. But I know my history. VirtualPC used to natively support 3dfx cards. If it was done, it can be done. That's that. Now, with M$ R&D and unique expertise, plus perhaps teaming up with Apple, I'm sure they will eventually add it. Hopefully for version 8 when Tiger ships.
Actually it was a huge task. The G5 is missing some features of the Motorola chips that had to be recreated in software.
My advice: look up ENDIAN on Google.
The point is not that it was or wasn't a big task. The point is that MS never came out and said these key functionality might not make it in this release. They had to have known it wouldn't make this release months and months ago.
This should be VPC 6.5 or something, and be an upgrade, because it's basically just G5 support. I was considering buying it, but no way will I do that for just G5 support.
VirtualPC used to natively support 3dfx cards. If it was done, it can be done. That's that. Now, with M$ R&D and unique expertise, plus perhaps teaming up with Apple, I'm sure they will eventually add it. Hopefully for version 8 when Tiger ships.
Quoting my original post:
"And that's all assuming that you can grab control of the video card without freaking out the Mac OS, as you could with the 3dfx card (since it had a totally separate frame buffer). Modern video cards don't work like that, so device contention is a major issue"
Virtual PC is NEVER going to be a good option for playing PC games on your Mac. Hardware graphics support is useful for some low intensity 3d work such as molecular modelling (although it's rare to find a modelling program that isn't available for OS/X or *nix) and it might also allow the Aurora toolset to run natively, but that's about it. I suspect that for the vast majority of VPC users (website developers running Windows IE to check for cross-platform compatibility or people running small business productivity apps) graphics hardware acceleration is completely uneccessary.
If you want to play PC games, get a PC. Or buy the Mac version when it gets ported over.
Um nef601 no. I have absolutely NO knowledge of 3D hardware or hardware in general or graphics or OS X or VPC or in fact pretty much anything, just a basic working knowledge of Macs. But I know my history. VirtualPC used to natively support 3dfx cards. If it was done, it can be done. That's that. Now, with M$ R&D and unique expertise, plus perhaps teaming up with Apple, I'm sure they will eventually add it. Hopefully for version 8 when Tiger ships.
Another big difference here is that was something like VPC2 or VPC3. It was removed in a later version. Why? Because it only supported one card maker (3dfx, for the reasons given above by nef601) and they had issues with it. IIRC, when they shoved in support for the G3/G4 and their whole Endian mixed mode business (which allowed them to have the processor deal with the PC's opposite Endian architecture - the whole reason it version 6 didn't work with the G5 supposedly) to improve performance, the graphics support got hosed because it was geared only towards the Mac's structure, so they'd have to convert all the graphic routines to change the endian stuff before sending it off to the frame buffer. Basically, they made a decision: Keep performance gains for video or add performance gains for general use. They took (rightly so, in my mind) the general use, where everyone saw improvement, not just people trying to run Unreal).
Oh, and I don't know if you heard, but 3dFX is out of business.
And if that's not enough for you, then I have a simpler reasoning why your argument "If it was done, it can be done" argument is lame. That was all done on the now ancient OS 9, where any program could easily just sieze complete control of the OS, event stack, drivers, hardware, etc. You're in the real world now. Even if they could do it, the only way would be through kernel extensions or driver hacks to access the hardware directly. Maybe you want that, but I prefer my stable OS X to my "Damn, it froze again!" OS 9 days.
Did Microsoft ever actually come out and say that native graphics hardware support would be included?
I've been paying attention to all of the VPC 7 news since I have a G5 and if there's one thing Microsoft has been this whole time it's cagey. But I don't remember any formal announcement that this would be a feature.
Please correct me if I'm wrong though. I'm just genuinely curious about this point.
So is it that games are extremely more demanding than they used to be?
It's just that before Diablo came out for the Mac, I used to run it no problem with VPC 3.0 on my 266MHz G3 tower with a whopping Rage][ video card with 6M of VRAM and 64MB of RAM.
I also had tried out some 3D games like SimCopter (I think that was the name of it) and that ran no problem as well.
I guess these games are pre 3D cards really but it is still surprising.
Well, until we see something substantial from them other than press releases, its just a lot of hot air.
Although after reading through transitive's website, it sounds like their product is most likely to be integrated into the OS itself rather than be a stand-alone product. This means Apple might have licensed this for OS 10.4 or 10.5 and is just keeping quiet about it (as usual).
If it worked, that would mean you wouldn't need VPC, or even a Mac Business Unit at Microsoft. If you need MS Word or Excel, just go get the Windows version and install it on your Mac.
Actually it was a huge task. The G5 is missing some features of the Motorola chips that had to be recreated in software.
My advice: look up ENDIAN on Google.
Baloney. Virtual PC didn't use native endian handling in the PowerPC Chip until the G3 because the 601,3,4 chips didn't do it efficiently.
Read it again, Virual PC 1 & 2 used the CPU to handle endian translation. We're talking PowerPC 601 processors here, that are, what, fifty times slower than a G5?
here's a byteswap function:
Code:
unsigned long ByteSwap2 (unsigned long nLongNumber)
Baloney. Virtual PC didn't use native endian handling in the PowerPC Chip until the G3 because the 601,3,4 chips didn't do it efficiently.
Read it again, Virual PC 1 & 2 used the CPU to handle endian translation. We're talking PowerPC 601 processors here, that are, what, fifty times slower than a G5?
here's a byteswap function:
Code:
unsigned long ByteSwap2 (unsigned long nLongNumber)
even Microsoft should have been able to do this in a couple months.
Surely MS isn't THAT stupid? If they took this long to deliver VPC7, the "big thing" with this release is G5 support, and the endian problem could have been solved with just a little code like that, why the huge delay?
Comments
Originally posted by nef601
copy of a post I made at a bioware forum:
******
The ever reliable Brad Oliver over at the IMG forums notes that h/w graphics acceleration with VPC and OS/X is -
"just about impossible given that the hardware is shared with OSX and would cause a device contention at the low-level needed to tie it in to VPC"
and also
"Seriously, people have been on this kick about 'hardware 3d acceleration" in PC emulators for far too long, and expectations are totally out of whack with reality. Remember, if you will, what 3dfx emulation did back in the day - not much. You could play Tomb Raider 1 at so-so speeds, and that was pretty much it - most other games performed too slowly.
The largest bottleneck will always remain the actual CPU emulation. Even for games that aren't CPU-bound on the PC, the time spent doing CPU things takes up 30% of each frame for the best cases. When you run that same game through VPC, that 30% CPU time balloons out to the point where even if the graphics rendering took up 0% of the time, most games from the past 6-7 years would still run too slowly.
And that's all assuming that you can grab control of the video card without freaking out the Mac OS, as you could with the 3dfx card (since it had a totally separate frame buffer). Modern video cards don't work like that, so device contention is a major issue"
This comes from someone who seriously knows what he's talking about.
Interestingly, 'rpg' also adds:
"it will never happen. we would all love it for our emulation needs, but looks like it's not in the stars kids. an early build had native graphics card support, and actually played quake 3 at fairly decent speeds, but tons of other games had serious compatibility errors, or just crashed. and like brad said, there really is no way to rip control of a video card away from the os x kernel, without seriously messing up the os. as I take it, they were basically passing the directx commands straight to the silicon itself. there probably would be a way to do it by creating a safety layer that saved the current OS X framebuffer, before switching it over to VPC control, and then once VPC use was over, flushing the buffer and replacing it with the OS X state. problem is, what about crashes that jump back to the os X gui, etc. just too many issues to deal with"
So I guess we shouldn't hope for any miracles soon.
That makes sense. I wonder why M$ promised it if it can't deliver it due to the issues mentioned in the post I quoted?
Hence it seems logical for MS to focus on getting VPC7 out of the door without graphics h/w support (for the time being, at least).
M$ and their 7billion R&D can shut up.
Originally posted by Existence
Folks, M$ did the best it given the situation. Adding support for the G5 is no trivial task. Besides, it's not like VPC7 is without new features. It's a little faster (10-30%) and is Panther-ized. Although not a significant upgrade over VPC 6, for those of you still with VPC 5, it's a good upgrade.
How would it be for Apple if new PowerMac and iMac G5 buyers couldn't get VPC for another 8-12 months? How are they supposed to conviced switchers? Two years without any upgrade and leaving all of Apple's G5 customers without emulation would have been far far worse. M$ did the right thing by getting something out there ASAP. It was bad enough for folks with G5 to have to wait a year.
That's all fine and dandy but the point is:
if MS released 7.0 without planned features, are they going to release them as a free upgrade in 6-12 months or are they going to call it "VPC 8.0:What You Shoulda Gotten in 7.0" and charge you an arm and a leg for it.
Originally posted by talksense101
www.transitive.com
M$ and their 7billion R&D can shut up.
Well, until we see something substantial from them other than press releases, its just a lot of hot air.
Oh, and let's see, you're tell MS to shut up because you can get another emulation technology to do what? Oh, run MS Windows software. The irony...
Obviously, the billions of dollars M$ has cannot help them effectively generate a few lines of code to update something that was written from scratch by a relatively small-time operation that M$ just went and bought.
I know! How about including a real Intel-based computer with every copy of Virtual PC sold! How much are those things going for now? $99? With the bulk-buying power of M$, it's sure to be a big hit!
Originally posted by bunge
Actually it was a huge task. The G5 is missing some features of the Motorola chips that had to be recreated in software.
My advice: look up ENDIAN on Google.
The point is not that it was or wasn't a big task. The point is that MS never came out and said these key functionality might not make it in this release. They had to have known it wouldn't make this release months and months ago.
This should be VPC 6.5 or something, and be an upgrade, because it's basically just G5 support. I was considering buying it, but no way will I do that for just G5 support.
Originally posted by Aquatic
VirtualPC used to natively support 3dfx cards. If it was done, it can be done. That's that. Now, with M$ R&D and unique expertise, plus perhaps teaming up with Apple, I'm sure they will eventually add it. Hopefully for version 8 when Tiger ships.
Quoting my original post:
"And that's all assuming that you can grab control of the video card without freaking out the Mac OS, as you could with the 3dfx card (since it had a totally separate frame buffer). Modern video cards don't work like that, so device contention is a major issue"
Virtual PC is NEVER going to be a good option for playing PC games on your Mac. Hardware graphics support is useful for some low intensity 3d work such as molecular modelling (although it's rare to find a modelling program that isn't available for OS/X or *nix) and it might also allow the Aurora toolset to run natively, but that's about it. I suspect that for the vast majority of VPC users (website developers running Windows IE to check for cross-platform compatibility or people running small business productivity apps) graphics hardware acceleration is completely uneccessary.
If you want to play PC games, get a PC. Or buy the Mac version when it gets ported over.
Originally posted by Aquatic
Um nef601 no. I have absolutely NO knowledge of 3D hardware or hardware in general or graphics or OS X or VPC or in fact pretty much anything, just a basic working knowledge of Macs. But I know my history. VirtualPC used to natively support 3dfx cards. If it was done, it can be done. That's that. Now, with M$ R&D and unique expertise, plus perhaps teaming up with Apple, I'm sure they will eventually add it. Hopefully for version 8 when Tiger ships.
Another big difference here is that was something like VPC2 or VPC3. It was removed in a later version. Why? Because it only supported one card maker (3dfx, for the reasons given above by nef601) and they had issues with it. IIRC, when they shoved in support for the G3/G4 and their whole Endian mixed mode business (which allowed them to have the processor deal with the PC's opposite Endian architecture - the whole reason it version 6 didn't work with the G5 supposedly) to improve performance, the graphics support got hosed because it was geared only towards the Mac's structure, so they'd have to convert all the graphic routines to change the endian stuff before sending it off to the frame buffer. Basically, they made a decision: Keep performance gains for video or add performance gains for general use. They took (rightly so, in my mind) the general use, where everyone saw improvement, not just people trying to run Unreal).
Oh, and I don't know if you heard, but 3dFX is out of business.
And if that's not enough for you, then I have a simpler reasoning why your argument "If it was done, it can be done" argument is lame. That was all done on the now ancient OS 9, where any program could easily just sieze complete control of the OS, event stack, drivers, hardware, etc. You're in the real world now. Even if they could do it, the only way would be through kernel extensions or driver hacks to access the hardware directly. Maybe you want that, but I prefer my stable OS X to my "Damn, it froze again!" OS 9 days.
I've been paying attention to all of the VPC 7 news since I have a G5 and if there's one thing Microsoft has been this whole time it's cagey. But I don't remember any formal announcement that this would be a feature.
Please correct me if I'm wrong though. I'm just genuinely curious about this point.
Originally posted by nef601
Virtual PC is NEVER going to be a good option for playing PC games on your Mac.
Never is a strong word. I'm sure a 50GHz G9 would handle late 90s 3D games just fine.
It's just that before Diablo came out for the Mac, I used to run it no problem with VPC 3.0 on my 266MHz G3 tower with a whopping Rage][ video card with 6M of VRAM and 64MB of RAM.
I also had tried out some 3D games like SimCopter (I think that was the name of it) and that ran no problem as well.
I guess these games are pre 3D cards really but it is still surprising.
Originally posted by Louzer
Well, until we see something substantial from them other than press releases, its just a lot of hot air.
Although after reading through transitive's website, it sounds like their product is most likely to be integrated into the OS itself rather than be a stand-alone product. This means Apple might have licensed this for OS 10.4 or 10.5 and is just keeping quiet about it (as usual).
If it worked, that would mean you wouldn't need VPC, or even a Mac Business Unit at Microsoft. If you need MS Word or Excel, just go get the Windows version and install it on your Mac.
Originally posted by rrabu
So is it that games are extremely more demanding than they used to be?
I think what happened is that graphics routines have moved from the CPU to the GPU and emulators haven't kept up with that transition.
Originally posted by bunge
Actually it was a huge task. The G5 is missing some features of the Motorola chips that had to be recreated in software.
My advice: look up ENDIAN on Google.
Baloney. Virtual PC didn't use native endian handling in the PowerPC Chip until the G3 because the 601,3,4 chips didn't do it efficiently.
Read it again, Virual PC 1 & 2 used the CPU to handle endian translation. We're talking PowerPC 601 processors here, that are, what, fifty times slower than a G5?
here's a byteswap function:
unsigned long ByteSwap2 (unsigned long nLongNumber)
{
return (((nLongNumber&0x000000FF)<<24)+((nLongNumber&0x00 00FF00)<<8)+
((nLongNumber&0x00FF0000)>>8)+((nLongNumber&0xFF00 0000)>>24));
}
even Microsoft should have been able to do this in a couple months.
Originally posted by ClimbingTheLog
Baloney. Virtual PC didn't use native endian handling in the PowerPC Chip until the G3 because the 601,3,4 chips didn't do it efficiently.
Read it again, Virual PC 1 & 2 used the CPU to handle endian translation. We're talking PowerPC 601 processors here, that are, what, fifty times slower than a G5?
here's a byteswap function:
Code:
unsigned long ByteSwap2 (unsigned long nLongNumber)
{
return (((nLongNumber&0x000000FF)<<24)+((nLongNumber&0x00 00FF00)<<8)+
((nLongNumber&0x00FF0000)>>8)+((nLongNumber&0xFF00 0000)>>24));
}
even Microsoft should have been able to do this in a couple months.
Surely MS isn't THAT stupid? If they took this long to deliver VPC7, the "big thing" with this release is G5 support, and the endian problem could have been solved with just a little code like that, why the huge delay?