Separate names with a comma.
Discussion in 'Mac and PC Games' started by jeanlain, Feb 20, 2016.
I assume Metal won't be retroactive that games will have to be written/patched for it?
Correct, Metal is not a "for free" upgrade that works on older games. Games have to be rewritten to support the API. If the game was written using Apple's SDK helpers (like SceneKit, SpriteKit, CoreAnimation) it could be upgraded by recompiling using the latest SDK.
No way to get these benchmarks to work with Buffin-based AMD cards right?
So we have 55fps with Metal and V-sync ON vs 52 fps with DX11 and V-Sync OFF.
With some extrapolation, the game may be at least 20% faster on macOS than on Windows with V-sync off.
Awesome work by Feral, and it shows Metal is a viable API.
I wonder if you can force V-sync off in F1 2016 with some system-wide terminal trick. Quartz debug used to be able to control V-sync, but no longer.
It looks like Metal can bring similar level optimizations as Vulkan vs OpenGL.
Metal presents to the screen via a CoreAnimation layer, which enforces V-Sync, so it isn't currently possible to disable V-Sync for Metal rendering.
Interesting. Well, at least considering the plots posted in that link, it doesn't look like fps are constrained to fractions of the screen refresh rate like 60, 30, 20, 15. This is the case for Source games, for instance. The lead Mac developer at Valve said there was no way around it because OpenGL (on OS X at least) did not support triple buffering.
But now I'm not sure if it's a specific driver issue since it doesn't appear to affect my Radeon card. It does affect my other Macs with nVidia cards.
That's interesting, thanks for the info. I know that iOS is vysnc locked too.
I'm personally a fan of VSync in my games (screen tearing be damned), but I really hope that Apple will adopt an adaptive sync technology like Freesync2 soon. I was really surprised that they didn't do it on their last MBP revision. I mean one of the advantages of owning the whole widget like Apple is the ease of adopting technologies like this. It really makes sense for a phone, laptop, and all-in-one computer where the hardware knows which monitors it is going to be paired with to support adaptive sync functionality. I would imagine that even the OS and pro apps could take advantage of adapative sync to create a more fluid experience. Oh well, maybe at WWDC or the next iPhone they'll support the technology.
The support can be added at any given time, because it is all Software(Firmware, actually) of the display. If the OS, or EFI is driving the display - it will be easy to add it to current hardware Apple sells.
Actually the 2016 macbook pro already supports adaptive sync on the built in display.
I've read that on discussion boards, but where does the information come from? And how does it affect games?
It comes straight from Apple. Whether games take advantage of it or not, I'm not sure.
Ok they mention variable refresh rates. I've seen some mention on reddit that free-sync external displays were supported as well, but I'm not sure if this requires Windows.
Quartz Debug could show the variable refresh rates, but apparently no one tried it.
Wow, I'm surprised that I haven't heard more about this. Reading into it a bit though, it sounds like this is not exposed through any APIs and they are using it as more of a battery optimization. I think it is just a driver-level optimization in that they will keep a monitor timing request, but if the request is late or if it is the same pixel information don't refresh the screen pixels. That's a bummer, because there can be a big smoothness improvement to allowing the application to control the monitor timing to prevent vsync latency spikes. Although, I doubt Apple even cares about apps that don't display the OS (since it's mainly just games that are full-screen experiences). Maybe they could wrap it up into their fullscreen API to give the fullscreened app frame rate control over the display.
^ Where did you find more information? I can only find copies of Apple's PR.
Regarding F1 2016, I wonder if Metal matching or even beating DX11 will be the rule now. I've read at several places that WoW is still better under DX11 than Metal, same fore Obduction. Maybe the DX11 version of F1 2016 is just poorly optimised (could be a bad console port).
Anyway, this shouldn't undermine Feral's work.
Hope your're smart enough to get if it's a typo when you read one
That is because if you are talking about Freesync it is only available for AMD GPUs, and MacBook Pros have also Intel. Apple must have made Variable Refresh rate available to all GPUs, through software layer of abstraction.
On the other hand, if there is Vsync On, and there is no possibility to switch it off, then it could mean that there is no need to support Variable Refresh rate, because it is always on. You would have to watch for tearing and stuttering, if it appears in games on MacBook Pros. Thats how you would know if it is, or is not enabled, all of the time.
A typo from what? Muffin?
EDIT: ok I see that Baffin is a code name for the RX460, which would have been clearer since it's the official name. If Macbook cards are based on "Baffin", I see no reason why the Metal benchmark should not work.
--- Post Merged, Apr 26, 2017 ---
You can see if V-sync is always on (and it should be), but how can you check the screen refresh rate? Because it's not the same as the fps. I can hit, say, a stable 50 fps with Vsync on in a random game showing on my old LCD running at 60 Hz.
--- Post Merged, Apr 26, 2017 ---
Screen Refresh rate should be always at 60 Hz, if it is the designed/destined refresh rate for the screen. If the framerate of the game is out of sync with the refresh rate of the monitor, what you will see is tearing. If it is in sync, even if the framerate of the game is lower than the designed refresh rate of the display, the movement will be completely smooth, and without tearing.
That is how you can see if it works under OSX. Unfortunately there is no other way, right now, unless someone will write an app to check this.
At least for UE4 we continue to work on improving Metal support and slowly optimizing toward parity. I'm delighted for Feral but equally I wouldn't be too hard on Blizzard because performance is very engine/content dependent.
Eventually I'd hope that Metal would be at or very near performance parity for any project (assuming feature parity which is a movable feast).
Oh, I wasn't able to find much either. So the only thing I could think of is it being done at the driver/OS level to stop the monitor refresh (thus saving some data transfer power) until new frame information is received.
Since Apple claims this feature only on their MBP monitors you'd probably need to find a way to measure the signals going to the display as it is likely a driver level optimization. Which I would need to leave to professionals to discover.
If Apple's implementation indeed works this way, it's good for gamers since it would mimmic freeSync / G-sync. I'd like to know if this can be tested with fps counters, maybe by comparing some fps diagrams obtained on a recent Macbook pro vs some older model.
Just a quick update to show the progress of the Metal drivers since my first test. Here are Metal results under macOS 10.12.4, in the same order.
Metal now faster than El Cap OpenGL. The difference isn't big, but again, we don't expect to see much difference on a weak GPU. At least the GPU is not used less efficiently now.