Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Ferazel

macrumors regular
Aug 4, 2010
146
96
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.
 
  • Like
Reactions: MrUNIMOG and Huntn

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
So we have 55fps with Metal and V-sync ON vs 52 fps with DX11 and V-Sync OFF. :eek:
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.
 
Last edited:
  • Like
Reactions: MrUNIMOG

marksatt

macrumors regular
Jun 26, 2013
230
236
So we have 55fps with Metal and V-sync ON vs 52 fps with DX11 and V-Sync OFF. :eek:
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.

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.
 
  • Like
Reactions: MrUNIMOG

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
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.
 
  • Like
Reactions: MrUNIMOG

Ferazel

macrumors regular
Aug 4, 2010
146
96
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.

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.
 
Last edited:
  • Like
Reactions: MrUNIMOG

koyoot

macrumors 603
Jun 5, 2012
5,939
1,853
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 the OS and pro apps could take advantage of an adapative sync to create a more fluid experience especially. 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.
 
  • Like
Reactions: MrUNIMOG

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
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.
 

Ferazel

macrumors regular
Aug 4, 2010
146
96
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.
 
  • Like
Reactions: MrUNIMOG

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
^ 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.
 
  • Like
Reactions: MrUNIMOG

koyoot

macrumors 603
Jun 5, 2012
5,939
1,853
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.
 

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
Hope your're smart enough to get if it's a typo when you read one :rolleyes:
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.
[doublepost=1493207706][/doublepost]
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.
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.
 
Last edited:
  • Like
Reactions: MrUNIMOG

koyoot

macrumors 603
Jun 5, 2012
5,939
1,853
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.
 

marksatt

macrumors regular
Jun 26, 2013
230
236
^ 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.

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).
 

Ferazel

macrumors regular
Aug 4, 2010
146
96
^ Where did you find more information? I can only find copies of Apple's PR.

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.
 
  • Like
Reactions: MrUNIMOG

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
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.
 
  • Like
Reactions: ikir and MrUNIMOG

jeanlain

macrumors 68020
Original poster
Mar 14, 2009
2,430
933
Now that GFXBench Metal is out on OS X, when can at last test Metal performance and compare it to OpenGL.

Here's my results (13" MacBook air with 1.5 GHz i5, intel HD 6000). I only use offscreen tests since V-Sync is clearly forced on the onscreen openGL tests. I indicate the Metal results first, units are fps except for texturing.

Manathan: 24.7 - 30.5
T-Rex: 73.7 - 85.7
ALU 2: 74.5 - 77.6
Driver overhead 2: 56.8 - 51.8
Texturing: 4992 - 5144

So a clear advantage for OpenGL across the board, except for the driver overhead test.
HOWEVER, it should be stressed that on this weak GPU, all other tests are GPU-bound and Metal is not predicted to bring ANY advantage here. So I think these results just show that the Metal drivers are not mature yet in respect to the GPU code they produce.

I'd be interested to see results from other GPUs.
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.
34.6
85.1
78
72.3
5496

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.
 
  • Like
Reactions: ikir and MrUNIMOG
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.