I would like to run some benchmarks with this game since it looks like the RX480 is not performing good at all with epic settings at full HD resolusion. How to run it?
Apparently UT uses Metal. Curiously, the Mac Unreal Engine developer (Mark) said here that Metal games were forced to use V-sync. But UT can run above 60 fps, so I'm confused.
Out of curiosity: is the Mac version for you also missing crucial parts of the user interface for a while now?
Windows version (the shot is a bit older, but the problem is still essentially the same)
You can use the Mac OS frame counter - Count It - but, you have to turn off Apple's SIP to do so.
Thanks.Metal uses CoreAnimation to display and CoreAnimation supports updating at up to 120fps but is always v-sync'd. On 60Hz monitors some frames will be dropped by CoreAnimation (otherwise it'd run at half-speed!) so our frame counter will say 120fps etc. but the monitor still only shows you 60 frames each second.
So why is there a VSync setting in UT (I don't have the game, but it looks like there is one)? I've heard that V-Sync reduces response time, which is the main reason why pro players turn it off. Does turning V-Sync off have any befit for Metal games at all?
I also see that GFXBench Metal can measure frame rates above 120 fps in "onscreen" mode. How is it possible?
Finally, do you know how the "adaptive refresh rate" of the latest MacBook Pros (as Apple says) affects games?
Lots of questions I know.
Thanks Mark, but I was asking about the benefit of turning V-Sync OFF in Metal games.
Are the additional non-displayed frames just wasted computation, or do they add some granularity to the gameplay, e.g. allowing the player to react quicker? I suppose not, because if it was possible, games would implement that solution: allow minimum response time without screen tearing.
I'm not quite sure why Apple decided to force V-Sync in Metal just because core animation renders most of the UI.
There's the windows compositor (which uses Quartz Extreme) and there's what happens within windows. OpenGL used to power both 3D games and the windows compositor, but you could still have a windowed game without V-Sync interacting with other windows. This didn't cause screen tearing of the whole desktop.
And yes, in GFXBench Metal, there is no screen tearing so no more than 60 fps show on screen. But some tests can measure up to 500 fps and more.
Which means that if a Metal game engine can generate much more than 60 fps, forced V-Sync does not reduce power consumption and does not increase battery life?Metal deals with this a bit differently, rather than directly telling the system when to present you render into a Drawable which provides you with a texture from an internal pool. You just tell CoreAnimation when this texture is ready to present and CoreAnimation decides when to actually present it.
Metal uses CoreAnimation to display and CoreAnimation supports updating at up to 120fps but is always v-sync'd. On 60Hz monitors some frames will be dropped by CoreAnimation (otherwise it'd run at half-speed!) so our frame counter will say 120fps etc. but the monitor still only shows you 60 frames each second.
What has happened there? Get yourself onto the UT forum and report this so somebody fixes it...
Well now that UT is running Metal it won't work for UT - but you shouldn't need it as UT has its own frame counter.
How do you find that frame counter? I can't seem to locate it.
Ok. Does it mean that a Metal game can run at any frame rate between 60 and 30 fps? Because I know some OpenGL game where it's either 30 fps (or less) or 60 (with V-Sync ON of course), which isn't great. I've noticed that Source games (including Source 2) behave like this on nVidia GPUs (OS X). But on AMD cards frame rates can take any value between 30 and 60. Not sure why.
Which means that if a Metal game engine can generate much more than 60 fps, forced V-Sync does not reduce power consumption and does not increase battery life?
OpenGL V-Sync does. At least I hear the fans slowing down when I enable V-Sync.
EDIT: Ok I'm starting to understand. With triple-buffering, the game still goes as fast as possible and you don't increase battery life by enabling V-Sync. I suppose that core animation has the same effect as triple buffering, even if it works differently.
One question though. Is it equivalent to directX "render ahead", which, as I understand, may induce some lag?
Interestingly, Sierra may have changed a few things in respect to frame rate limits compared to El Cap. Apparently, GFXBench could not go faster than 120fps onscreen before Sierra. https://forums.macrumors.com/threads/looks-like-metal-got-an-update.1977661/#post-23016160I don't think Metal Drawable present is just render-ahead, i.e. a fixed swap chain where each frame must be displayed and will block if no element is available for the next frame to use. Since some applications seem to think they can render at very high frame rates (e.g. GFxBench's Onscreen test) my supposition is that they actually drop some late frames, like in this answer about D3D Render Ahead.
Interestingly, Sierra may have changed a few things in respect to frame rate limits compared to El Cap. Apparently, GFXBench could not go faster than 120fps onscreen before Sierra. https://forums.macrumors.com/threads/looks-like-metal-got-an-update.1977661/#post-23016160
But could you help me translate from ms per frame to frames per second??