Just out of curiosity does anyone know in general what WINE is doing beneath the surface to make Windows programs compatible with Linux?
So what wine is, is essentially a Direct 3D convertor. It converts DirectX (Direct3D) calls to OpenGL.
The end result is actually about a 10% performance increase. A common misconception is that wine is a program, really its a bit more of a conversion layer.
That is just for rendering, I do believe wine implements some C++ calls from Windows.
There is quite a bit more going on behind that, that I don't know completely, too.
Well tests have shown OpenGL is faster. Look at how graphics are on android at higher resolutions than an iPhone.
WINE is completely backwards engeneering with a blindfoil on.
The devs from WINE sometimes had "funny" situations where they had to fake the windows-enviroment so badly, they even had to imitate all the bugs of the windows software envirmoment situations to make certain programs work.
Which is, I think, kind of funny.
Yeah! I heard really funny stories about that from people that were involved with wine in the early stages. And with the intermittent translation of the calls included, it's still faster on linux than direct calls to the windows operating system, and that is without the wine devs being able to analyse the direct calls to hardware driven by proprietary crap, if that were possible, wine would destroy Windows completely in terms of performance. It all points in the direction of the fact everybody already knows: that Windows code is utter bollocks and the biggest ripoff in software history. The bad quality of the DirectX APIs has been known for a long time. Steinberg had to make ASIO to even enable realistic DAW use, and after all these years, DirectAudio still has 2 to 5 times the latency of ASIO, and ASIO is far from perfect itself in comparison to ALSA or CoreAudio.
Wine development is rapidly evolving, and by the time the Steam Box comes out, almost all Windows games will run better on linux than on windows. Microsoft has tried to reDRM everything with Live Games for Windows, but they have failed (mostly because others were going to sue their ass off for it, and they have enough legal problems already with the class actions for misrepresentation and prejudicial reckless negligence luring around the corner, and with their next batch of huge fines coming for repeated offense against competition law regulations), and they will continue to fail, because they have never made an operating system themselves, and they just have no clue.
wine 1.6 was a big step, wine 1.7 is just great, wine 1.8 will possibly deal the lethal blow to gaming under windows in a few weeks to months.
iPhones use OpenGL ES just the same as Androids.
Nope, nope nope.
It's a runtime for Portable Executable files.
Linux can use a few executable which are usually loaded via the dynamic loader (ld) from glibc but PE is not one of them. However wine understands PE and can execute them, like ld can execute linux native executable formats.
Executing alone is not sufficient because programs make system calls and other kernel dependend operations (mostly not the program itself but a linked library) which are completely different between a linux and a windows kernel. That's why wine also has to provide windows core libraries (libraries with the exact same API and behavior, implemented with linux kernel functions instead of windows kernel functions).
Really? Huh. Learn somethin' new err'day. Right here on their Dev site. (https://developer.apple.com/opengl-es/)
I guess Android just handles OpenGL ES a bit better.
Well, WINE is a real hit-or-miss. Usually if the game works, then BOOM it's a lot faster. Otherwise, it usually doesn't work at all (or isn't playable).
However the future of WINE w/ the SteamBox (as you said) will totally change the way gaming is done. Who knows, maybe Valve will partner w/ the WINE guys and make an awesome runtime for SteamBox. :p
A boy can dream.
Valve is free to help the open source community to develop WINE, their input is generally welcomed. Valve can also use WINE as freely as they want and can mod it for their own purpose, as long as they respect the open source license of the code they use and respect the fact that whatever they mod it into, has to respect the same license.
I don't know if games running in WINE are "a lot" faster, that is not my experience to be honest, although that will certainly come as support for linux by GPU manufacturers increases, and the linux operating system will be able to more efficienctly use that hardware, where it is artificially being boycotted now.
Most games work in WINE, sometimes a bit of configurations is needed. A lot of games and software (more than 10.000 titles in total) can be installed using a WINE-optimized profile, and those profiles can be found in PlayOnLinux or wine-tricks, whereby the latter is often a bit better. There are also commercial solutions, like Crossover, but those don't perform very well, are very expensive, and are just a brand on a copy of WINE anyway. PlayOnLinux and wine-tricks are definitely where it's at.
Still hoping that valve writes a dll override which enables communication between a wine game and native steam so that you could start games in steam directly with wine.
From my experience games perform a lot worse in wine than they do natively but I hope that the D3D state tracker will push the performance quite a bit.
Btw, Crossover is the main contributor to wine so I feel like they should be supported.
Yeah, the crazy thing is that the settings in wine-tricks generally work better from my experience. I do have crossover though, and pay for the settings I want (I use it to run windows apps that clients use so that I know what they are talking about), but I don't use it that much to be honest.
I guess performance on WINE is picky huh? On my i7 3770k it works very efficiently.
Jup. Playing CoD4 on AMD Phenom(tm) II X4 955 with Radeon HD 4850 on wine 1.6 never got more than 15fps and the mouse is jumping sometimes. I hope it's a bug.
The settings were not corrected for 1.6 yet probably, I had a similar regression after upgrading to 1.6 with the old settings, but the settings have been updated to 1.7 now, have you tried with 1.7 and the latest CoD4 code?
No, I have not tried 1.7, yet but I also don't have the CoD4 files lying around anymore. They are on a HDD for which I don't have an additional power cable ;)