Square Enix Pulls, Apologizes For Mac Version of Final Fantasy XIV
_xeno_ writes: Just over a week after Warner Bros. pulled the PC version of Batman: Arkham Knight due to bugs, Square Enix is now being forced to do the same thing with the Mac OS X version of Final Fantasy XIV (which was released at the same time as Batman: Arkham Knight). The rather long note explaining the decision apologizes for releasing the port before it was ready and blames OS X and OpenGL for the discrepancy between the game's performance on identical Mac hardware running Windows. It's unclear when (or even if) Square Enix will resume selling an OS X version — the note indicates that the development team is hopeful that "[w]ith the adoption of DirectX 11 for Mac, and the replacement of OpenGL with a new graphics API in Apple's next OS, the fundamental gap in current performance issues may soon be eliminated." (I'm not sure what "the adoption of DirectX 11 for Mac" refers to. OS X gaining DirectX 11 support is news to me — and, I suspect, Microsoft.) Given that the game supports the aging PS3 console, you'd think the developers would be able to find a way to get the same graphics as the PS3 version on more powerful Mac OS X hardware.
I wouldn't blame the coders, unless they where responsible for the technology choices
It's first and foremost a management issue :
However, in the chaos leading up to the multi-platform launch of our expansion, we released incorrect requirements, which were not updated prior to the Mac version’s official release.
However, due to our miscommunication with retailers, the Mac version was made available earlier than intended. As a result, some customers were able to download and play a pre-release build which suffered from performance problems.
If that's not management rotten to the core, what is ?
Rather, it works by employing middleware developed by TransGaming (presently NVIDIA) to convert Windows’ DirectX drawing method into OpenGL on Mac systems.
Any company relying on Microsoft technology to achieve cross-platform deserves a spectacular failure anyway.
I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
Whats worse is that it appears they weren't even developing for OpenGL, but rather using Transgaming's (nVidia) cider to translate DX calls to OGL.
"...it works by employing middleware developed by TransGaming (presently NVIDIA) to convert Windows’ DirectX drawing method into OpenGL on Mac systems."
They then go on to compare OGL and DX and claim that if it was developed natively for OGL there would be a 30% performance gap. Excuses for laziness, in my opinion.
I have a MacBook Retina which I use for development, it has a 2880x1800 screen, but to you need to go into 'Display' and set it to Scaled and 'More Space' in order for it to render like it has a 1920x1200 screen. So non retina applications the OS reports the resolution to be 1920x1200, then it upscales the application window to 3840x2400 and also does composition at 3840x2400, which is then downscaled to 2880x1800 and displayed. Performance gets even worse if you also have an external screen, because and it also does the same if you have an external 3840x2160 and downscales to 1920x1080. Basically you add an external 1080p screen and it will try to make the integrated graphics render graphics for basically two 4k screens.
When you run in scaled mode like that, ALL applications over-render. Both retina and non-retina. It's why I really suggest people avoid the scaled modes.
Non-scaled displays do not scale. I've verified that at work. So external displays do not over render unless you have a 4k display and you've put it in a scaled mode.
Games are actually one exception. A full screen OpenGL game gets to directly output properly to the screen. Full screen OpenGL doesn't get scaled or over rendered. I've verified this on multiple Apple platforms with OpenGL code of my own. It means on a device like the 6 Plus where scaled output is normal (the 6 Plus has a 1080p screen but has a much higher res frame buffer) OpenGL performance isn't degraded. I even have non-full screen OpenGL code that doesn't get over-rendered either.
My guess is that none of the original article has to do with scaling at all. It's likely they're using something like Cider that abstracts DirectX calls to OpenGL, and has always really sucked for performance. (EA did several ports with Cider and they all had severe performance issues as well.) OpenGL on the Mac also just has general issues.