Looks like Metal got an update!?

Discussion in 'macOS Sierra (10.12)' started by raymond7, Jun 14, 2016.

  1. raymond7 macrumors member

    Joined:
    Jan 14, 2016
    #1
  2. h9826790 macrumors 604

    h9826790

    Joined:
    Apr 3, 2014
    Location:
    Hong Kong
    #2
    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.
     
  3. gmanist1000 macrumors 68030

    gmanist1000

    Joined:
    Sep 22, 2009
    #3
  4. raymond7 thread starter macrumors member

    Joined:
    Jan 14, 2016
    #4
    Woah that looks awesome! I hope that these under-the-hood Metal updates makes the OS visually snappier.
     
  5. leman macrumors 604

    Joined:
    Oct 14, 2008
    #5
    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.
    --- Post Merged, Jun 15, 2016 ---
    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).
     
  6. h9826790 macrumors 604

    h9826790

    Joined:
    Apr 3, 2014
    Location:
    Hong Kong
    #6
    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
     
  7. Malus120 macrumors regular

    Joined:
    Jun 28, 2002
    #7

    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?
     
  8. leman macrumors 604

    Joined:
    Oct 14, 2008
    #8
    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).
     
  9. cycledance Suspended

    Joined:
    Oct 15, 2010
    #9


    :eek: how can you live with yourself! shame on you!
    shame on you for even thinking of being qualified enough to answer his question!
     
  10. Zarniwoop, Jun 17, 2016
    Last edited: Jun 17, 2016

    Zarniwoop macrumors 6502a

    Joined:
    Aug 12, 2009
    Location:
    West coast, Finland
    #10
    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
     
  11. imacken macrumors 65816

    Joined:
    Feb 28, 2010
    #11
    Does any of this help with the shader issues that stopped the release of games like F1 2015, Elite Dangerous Horizons, etc.?
     
  12. Puonti macrumors 6502a

    Joined:
    Mar 14, 2011
    #12
    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.
     
  13. Malus120 macrumors regular

    Joined:
    Jun 28, 2002
    #13
    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.
     
  14. T'hain Esh Kelch macrumors 601

    T'hain Esh Kelch

    Joined:
    Aug 5, 2001
    Location:
    Denmark
    #14
    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.
     
  15. Zarniwoop macrumors 6502a

    Joined:
    Aug 12, 2009
    Location:
    West coast, Finland
    #15
    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.
     
  16. MacSafe macrumors regular

    Joined:
    Jun 8, 2015
    #16
  17. leman macrumors 604

    Joined:
    Oct 14, 2008
    #17
    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.

    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 it has a good chance to be more stable :)

    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.
     
  18. Puonti macrumors 6502a

    Joined:
    Mar 14, 2011
    #18
    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.
     
  19. leman macrumors 604

    Joined:
    Oct 14, 2008
    #19
    Ah, then they were probably talking about compute shaders in OpenGL.
     
  20. jeanlain, Jun 21, 2016
    Last edited: Jun 21, 2016

    jeanlain macrumors 65816

    Joined:
    Mar 14, 2009
    #20
    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).
     
  21. leman macrumors 604

    Joined:
    Oct 14, 2008
    #21
    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.

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

    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
     
  22. jeanlain macrumors 65816

    Joined:
    Mar 14, 2009
    #22
    I found it, thanks. :)
    --- Post Merged, Jun 22, 2016 ---
    Interesting. But does it mean that it would be much more difficult to port Rage or Doom do Metal, as they used megatextures?
     
  23. leman macrumors 604

    Joined:
    Oct 14, 2008
    #23
    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!
     
  24. iamtheonlyone4ever macrumors regular

    iamtheonlyone4ever

    Joined:
    May 27, 2016
    #24
    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.
     
  25. marksatt macrumors regular

    Joined:
    Jun 26, 2013
    Location:
    Epic UK
    #25
    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.
     

Share This Page