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

h9826790

macrumors P6
Apr 3, 2014
16,656
8,584
Hong Kong
Hi i found this through another forum.

In macos sierra apple has updated the api for metal:
https://developer.apple.com/metal/availability/

https://developer.apple.com/library....html#//apple_ref/doc/uid/TP40014221-CH14-SW1

Anyone knows if this metal update is huge or still meh?

I did a Metal test (GFXBench Metal). The onscreen test now is no longer looked at 119FPS. I use exactly the same copy of the apps to run the test, so the result differences must be because of the OS itself.

On 10.11, the score was locked at 119FPS, and on 10.12, the same GPU can score 366FPS, which is a big improvement. For the offscreen test, the result is more or less the same. So, no significant improvement on real processing power.
 

raymond7

macrumors member
Original poster
Jan 14, 2016
53
27
I did a Metal test (GFXBench Metal). The onscreen test now is no longer looked at 119FPS. I use exactly the same copy of the apps to run the test, so the result differences must be because of the OS itself.

On 10.11, the score was locked at 119FPS, and on 10.12, the same GPU can score 366FPS, which is a big improvement. For the offscreen test, the result is more or less the same. So, no significant improvement on real processing power.

Woah that looks awesome! I hope that these under-the-hood Metal updates makes the OS visually snappier.
 

leman

macrumors Core
Oct 14, 2008
19,494
19,631
Metal for OS X gained some of the missing features, e.g. tessellation. With this Metal should be more or less feature-complete with OpenGL 4.1. Still not enough for AAA games, but a very nice API to work with and miles better than what we had before. I'd also expect some under-the-hood upgrades, of course.
[doublepost=1466001886][/doublepost]
I hope that these under-the-hood Metal updates makes the OS visually snappier.

I very much doubt that they can. If there is any lag anywhere in the OS, the problem is not the rendering itself but how the rendering is done (e.g. does the OS only draw what has changed, does it intelligently pre-load/cache resources etc.). The only area where Metal can help is increased efficiency and thus better battery life.

P.S. In regards to 'visually snappier': from what I understand, 10.12 includes a lot of optimisations to layouting system, which should certainly improve performance in certain situations (e.g. resizing).
 
  • Like
Reactions: raymond7

h9826790

macrumors P6
Apr 3, 2014
16,656
8,584
Hong Kong
Woah that looks awesome! I hope that these under-the-hood Metal updates makes the OS visually snappier.

Not sure do they use Metal for UI animation, but I tested it for 2 hours, apart from very little UI bug, the animation is perfectly smooth. Which is very amazing by considering this is just the DP1
 
  • Like
Reactions: raymond7

Malus120

macrumors 6502a
Jun 28, 2002
695
1,451
Metal for OS X gained some of the missing features, e.g. tessellation. With this Metal should be more or less feature-complete with OpenGL 4.1. Still not enough for AAA games, but a very nice API to work with and miles better than what we had before. I'd also expect some under-the-hood upgrades, of course.
[doublepost=1466001886][/doublepost]

Well that's disappointing to hear, I was hoping that with tessellation and the other upgrades Metal (and thus macOS) would (finally) be more or less on par feature wise with with at least OpenGL 4.4 and DirectX 11.

What's still missing?
 

leman

macrumors Core
Oct 14, 2008
19,494
19,631
Well that's disappointing to hear, I was hoping that with tessellation and the other upgrades Metal (and thus macOS) would (finally) be more or less on par feature wise with with at least OpenGL 4.4 and DirectX 11.

What's still missing?

This questions seems simple enough, but in fact, its very difficult to answer properly. The difficulty lies in understanding what exactly you mean with 'feature-wise'. First of all, I would like to make one point clear (subjective, of course, but anyway): Metal is a better and more convenient API than OpenGL, DX11 or OpenCL and writing high-performance, efficient and bug-free graphical and compute code with it is much either than with any of the direct competitors. Metal is a true next-gen API as it abstracts the hardware much better than OpenGL and DX11 and it has a lower overhead.

Now, if we are talking about 'features' as in 'things exposed by the API', I'd say that for all common cases Metal is feature-equivalent with GL 4.4 or maybe even parts of 4.5 and in fact, that it exposes hardware facts that no core OpenGL spec does. At the same time it is possible/likely that OpenGL does expose some features that Metal does not have. I am ashamed to admit that my knowledge of modern OpenGL is not as good as some years ago, so I will have difficulty pointing these out in detail. However, one can argue that many of these features are not necessary in Metal. Metal is a very compact, logical API that allows you to do many different things with very few means. Metal for OS X stick lacks synchronisation primitives (fences) — although they did introduce them for iOS 10 now - but they are less needed there as the command buffers can be queued/ordered explicitly. Metal does not have features like transform feedback or geometry shaders, but they can be implemented using compute and/or vertex shaders.

When I was talking about Metal lacking features for AAA games, I was thinking of comparisons to other next-gen APIs like Vulkan and DX12. Vulkan for example is very explicit in how you set up and treat hardware, which allows a competent dev to squeeze every ounce of performance out of the hardware — at the cost of complexity. Metal skips most of this explicitness, while still offering very competitive performance (in fact some of Vulkan features are borrowed from Metal, a fact that most people fail to acknowledge). The nice thing about Metal is that it is extremely easy to use and learn. This is by far the most straightforward graphical/compute API I have ever worked with and it is really a pleasure. The primary goal Apple had in mind (I believe) is offering an API that would allow an independent developer to build high-performance apps that utilise GPU across all Apple's platforms, and do it within reasonable time, with minimal effort. OpenGL has failed in that regard. Vulkan is barely unusable for a average dev (after looking at the specs, I am really afraid to even touch it). Metal hits the spot nicely. It does put more burden on developers when portion between platforms, but then again, it is straightforward to make a Vulkan implementation on top of Metal (AFAIK there is a company that is doing that at the moment).
 

cycledance

Suspended
Oct 15, 2010
399
84
I am ashamed to admit that my knowledge of modern OpenGL is not as good as some years ago, so I will have difficulty pointing these out in detail.


:eek: how can you live with yourself! shame on you!
shame on you for even thinking of being qualified enough to answer his question!
 

Zarniwoop

macrumors 65816
Aug 12, 2009
1,038
760
West coast, Finland
Tessellation with HLSL (Metal shader language 1.2, C++14) with clang and LLVM point to Shader Model 6.0 (than 5.0 that is used in DX11). Metal 1_2 for OS X (macOS) is leaning toward DX12, because it is fundamentally built for low level programming and low overhead.

Some of Metal v2 shading languages capabilities and limitation vs c++14 standard:
https://developer.apple.com/library...s.html#//apple_ref/doc/uid/TP40014364-CH8-SW1
 
Last edited:
  • Like
Reactions: Malus120

imacken

macrumors 65816
Feb 28, 2010
1,250
127
Does any of this help with the shader issues that stopped the release of games like F1 2015, Elite Dangerous Horizons, etc.?
 
  • Like
Reactions: Malus120

Puonti

macrumors 68000
Mar 14, 2011
1,567
1,187
Does any of this help with the shader issues that stopped the release of games like F1 2015, Elite Dangerous Horizons, etc.?

That's what I'm curious about as well. Although, even if the updated Metal allows for compute shaders (which I believe is why Elite Dangerous' Horizons is not yet doable on Mac), ED uses an OpenGL engine on Mac and there's no telling if the devs want to port it to Metal.

Still.. support for what they need is the first step to getting things moving forward on Mac. I do hope Metal will now have what they need.
 
  • Like
Reactions: Malus120

Malus120

macrumors 6502a
Jun 28, 2002
695
1,451
That's what I'm curious about as well. Although, even if the updated Metal allows for compute shaders (which I believe is why Elite Dangerous' Horizons is not yet doable on Mac), ED uses an OpenGL engine on Mac and there's no telling if the devs want to port it to Metal.

Still.. support for what they need is the first step to getting things moving forward on Mac. I do hope Metal will now have what they need.

This is what I was trying to get at with my initial question when I asked what metal in Sierra was lacking in comparison to the latest versions of DirectX/OpenGL/Vulkan. While performance parity would certainly be nice (and I'm hopeful that metal will get us closer to that holy grail), what's really important is filling the holes that made it flat out impossible to port some AAA titles in the last few years.
 

T'hain Esh Kelch

macrumors 603
Aug 5, 2001
6,447
7,365
Denmark
So typical Apple if we have to wait yet another year for the current batch of AAA titles.

But at least we can definitely say that OpenGL on the Mac is dead now. Such a pity that theres nothing but a half-baked alternative at the moment.
 

Zarniwoop

macrumors 65816
Aug 12, 2009
1,038
760
West coast, Finland
Most likely openGL is going to be a layer on top of Metal in future. Maybe in macOS 10.13. Then there could be 4.3 or even later version. Apple cannot just throw away an API that is used in nearly all apps there is. But they don't want to pay the millions to support openGL drivers for all Macs there is and will be. So, making one API on top of Metal will save them a lot of money. And, openGL on top of Metal shouldn't be any slower than the current one is.
 
  • Like
Reactions: Merode

leman

macrumors Core
Oct 14, 2008
19,494
19,631
Although, even if the updated Metal allows for compute shaders (which I believe is why Elite Dangerous' Horizons is not yet doable on Mac)

Metal had compute shaders from the start, and they are even actively used in the rendering pipeline. So I am not sure what capabilities Elite Dangerous devs refer to.

This is what I was trying to get at with my initial question when I asked what metal in Sierra was lacking in comparison to the latest versions of DirectX/OpenGL/Vulkan

To be honest, now that we have tessellation and atomics in fragment shaders, I don't think that anything is lacking really. I would love to see sparse data in Metal, but that is an optional feature in GL and Vulkan (not sure about DX12). However, Metal does some things differently. For example, it doesn't include geometry shaders and it sets up the tessellation pipeline differently (both of which kind of make sense to me, although not every use of geometry shader can be solved with compute shaders). So porting from GL or DX to Metal can involve change of rendering logic, which is more complex.

And, openGL on top of Metal shouldn't be any slower than the current one is.

And it has a good chance to be more stable :)

Does iOS 10 gets this metal upgrade as well?

In fact, iOS 10 Metal update is much more significant. It also gets low-level memory allocation (with resource aliasing) as well as explicit synchronisation primitives. I am surprised and somehow disappointed that it didn't get to OS X as well.
 

Puonti

macrumors 68000
Mar 14, 2011
1,567
1,187
Metal had compute shaders from the start, and they are even actively used in the rendering pipeline. So I am not sure what capabilities Elite Dangerous devs refer to.

That's great news. As I mentioned in my post ED is an OpenGL game on Mac, though, so Apple's lackluster implementation of it is what the devs have been hampered by. As I also noted, it's unknown if the devs are planning on switching over to Metal. I'm sure they're considering it, but that would mean having to deal with three different rendering paths.
 

leman

macrumors Core
Oct 14, 2008
19,494
19,631
As I mentioned in my post ED is an OpenGL game on Mac, though, so Apple's lackluster implementation of it is what the devs have been hampered by.

Ah, then they were probably talking about compute shaders in OpenGL.
 

jeanlain

macrumors 68020
Mar 14, 2009
2,454
948
P.S. In regards to 'visually snappier': from what I understand, 10.12 includes a lot of optimisations to layouting system, which should certainly improve performance in certain situations (e.g. resizing).
Hi, I'm interested in this. Can you point WWDC sessions or links that discuss it?

Also, aren't sparse resources the same as "memoryless render targets" that Apple just introduced?

Regarding tessellation. I think it isn't as crucial as some suggested. What game actually requires tessellation? The only one I heard of (and which Feral were crazy enough to port) was Shadow of Mordor. It's optional in almost all games that support it, and it barely makes a visual difference (it does only in demos and benchmarks like Unigine).
 
Last edited:
  • Like
Reactions: nontroppo

leman

macrumors Core
Oct 14, 2008
19,494
19,631
Hi, I'm interested in this. Can you point WWDC sessions or links that discuss it?

I think they mentioned it in 'Whats new in Cocoa', but I can't be 100% sure. If I stumble across it again, I'll write you.

Also, aren't sparse resources the same as "memoryless render targets" that Apple just introduced?

No, memoryless render targets is an PowerVR GPU thing and is not even exposed on desktop (as desktop GPUs are not tile-renderers). What I mean with sparse resources are datasets which do not need to be fully resident in memory (aka virtual reassures or 'megatexture').

Regarding tessellation. I think it isn't as crucial as some suggested. What game actually requires tessellation? The only one I heard of (and which Feral were crazy enough to port) was Shadow of Mordor. It's optional in almost all games that support it, and it barely makes a visual difference (it does only in demos and benchmarks like Unigine).

You are certainly right. However, hardware does have support for fast tessellation, so why not expose it properly? Also, tessellation can indeed make some rendering algorithms much simpler and more efficient. Terrain rendering comes to mind. This for instance is a neat example:

http://docs.nvidia.com/gameworks/co.../opengl_samples/terraintessellationsample.htm
 

jeanlain

macrumors 68020
Mar 14, 2009
2,454
948
I think they mentioned it in 'Whats new in Cocoa', but I can't be 100% sure. If I stumble across it again, I'll write you.
I found it, thanks. :)
[doublepost=1466621664][/doublepost]
No, memoryless render targets is an PowerVR GPU thing and is not even exposed on desktop (as desktop GPUs are not tile-renderers). What I mean with sparse resources are datasets which do not need to be fully resident in memory (aka virtual reassures or 'megatexture').
Interesting. But does it mean that it would be much more difficult to port Rage or Doom do Metal, as they used megatextures?
 

leman

macrumors Core
Oct 14, 2008
19,494
19,631
Interesting. But does it mean that it would be much more difficult to port Rage or Doom do Metal, as they used megatextures?

AFAIK, Rage never used sparse textures to implement their megatexture, rather, they were using other means. I have no idea about Doom (I though they have abandoned the entire megatexture thing)? Anyway, its optional functionality in GL and Vulkan, and I guess Apple didn't implement it because Intel and PowerVR seems to lack support of sparse textures (even though I'd think that modern Intel hardware is capable of it). If one really wants to have things like megatextures, that is something that (AFAIK) can be done without too much trouble even if sparse textures are not exposed by the API (I never implemented it myself, so I might be wrong here :) ). Still, its very handy to have for a lot of applications!
 

iamtheonlyone4ever

Suspended
May 27, 2016
334
174
I did a Metal test (GFXBench Metal). The onscreen test now is no longer looked at 119FPS. I use exactly the same copy of the apps to run the test, so the result differences must be because of the OS itself.

On 10.11, the score was locked at 119FPS, and on 10.12, the same GPU can score 366FPS, which is a big improvement. For the offscreen test, the result is more or less the same. So, no significant improvement on real processing power.
thanks this is good to know because many people mentioned that those apps have vsync enable for the onscreen test. i haven't install sierra yet but i do know about the 119 fps lock in onscreen test , so is good to know that it wasn't vsync.
 

marksatt

macrumors regular
Jun 26, 2013
230
236
Metal has most features from D3D10, some features from D3D11 and a few from D3D12, so its a bit of a a grab-bag feature-wise and can't easily be said to be equivalent to any other API. Most of UE4's SM5/D3D11 feature-set could be supported with the new Metal feature set (but no promises as to when) so for some games Metal is already or will soon be very workable. For others you'd really want geometry shaders, shader atomics on texture objects, sparse-resources/virtual-textures and typed-buffers/texture-creation-from-buffers (possibly others I've not run into myself) as the differences currently require some fiddling around with engine/shader code to implement various features as leman points out.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.