Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Yep. And another telltale game is on Metal too. At this rate, we are probably missing new Metal titles, in particular Unity and UE-powered games.

As incredible as it may sound, there are more Metal games on the Mac than DX12 games on Windows + Xbox, only 2 such games have been released in 2017! :eek:
It helps when there is no other viable option for developers. :D They have the choice between some horribly outdated and slow openGL with antiquated debugging tools; and a a clean, not-so-hard to use API that is deeply integrated into Xcode.
On Windows, they have DX11, which is plenty fast and well-documented, and DX12, which may be a bit faster (not so much on nVidia), but much harder to use and doesn't bring any new graphical feature.
 
Last edited:
  • Like
Reactions: ErikGrim
Interesting. They say the game requires a "Metal 2.0 compliant GPU", even though all GPUs that accelerate Metal support Metal 2 and the game runs on Sierra, which does not include Metal 2. o_O
I'm curious to know how it performs. Metal should help, but the porting house is not renown for its quality ports.
 
Interesting. They say the game requires a "Metal 2.0 compliant GPU", even though all GPUs that accelerate Metal support Metal 2 and the game runs on Sierra, which does not include Metal 2. o_O
I'm curious to know how it performs. Metal should help, but the porting house is not renown for its quality ports.

Probably just somebody not understanding Mac system requirements writing them.
 
I'm curious: any High Sierra Metal 2 benchmarks already?
I'm not aware of any game using Metal 2.

What is meant by Metal 2?

If you mean running on the Metal 2 runtime, then any Metal compatible game running on High Sierra meets the criteria. This is *not* like GL 2 -> GL 3 where you have to code against an incompatible set of APIs nor is it like D3D11 -> D3D12 where in addition you must also link against different libraries.

If you mean using absolutely all the cool sounding new features added in Metal 2, then you might need to wait a while as they are hard to integrate properly. Plenty of game engines, including UE4, haven't adopted all the equivalent features on console or in D3D12 yet.

Don't let the hype fool you - this is not as simple as ticking a box in Xcode ;)
 
They just briefly mentioned "driver optimisations" in the keynote and said nothing about it in Metal sessions. I'm not sure these optimisations will change much compared to a macOS point update.
[doublepost=1506528797][/doublepost]
If you mean using absolutely all the cool sounding new features added in Metal 2...
I meant any feature brought by Metal 2.
 
Devs will be leery of full-on committing to Metal 2 when Apple barely supported further first iteration.
 
So I tested War Thunder on High Sierra. Fps is now capped at 60 (was 120 under Sierra), which will make even harder to benchmark Metal games. :-/
But the game does appear more fluid. On Sierra, there was some stuttering even though the fps counter showed values above 60. That no longer appears to be the case.

Devs will be leery of full-on committing to Metal 2 when Apple barely supported further first iteration.
o_O
 
They just briefly mentioned "driver optimisations" in the keynote and said nothing about it in Metal sessions. I'm not sure these optimisations will change much compared to a macOS point update.
[doublepost=1506528797][/doublepost]
I meant any feature brought by Metal 2.

Some of the simple ones will be used in UE4 4.18, but things like Indirect Argument Buffers and Heaps/Fences require major architectural changes to the whole UE4 renderer to use properly. The gains for these bigger features are offset by them requiring dramatically more effort to implement. It is a bit silly to do that only in the low-level guts of one platform in UE4 as we'd just end up pointlessly duplicating effort.
[doublepost=1506535428][/doublepost]
So I tested War Thunder on High Sierra. Fps is now capped at 60 (was 120 under Sierra), which will make even harder to benchmark Metal games. :-/
But the game does appear more fluid. On Sierra, there was some stuttering even though the fps counter showed values above 60. That no longer appears to be the case.


o_O

macOS 10.13 changed the way Metal's drawables behave in the naive usage, however you can still hit 120fps if you use a more complex code path. UE4 should still cap at 120fps as a result.
 
  • Like
Reactions: revanmj
ome of the simple ones will be used in UE4 4.18, but things like Indirect Argument Buffers and Heaps/Fences require major architectural changes to the whole UE4 renderer to use properly. The gains for these bigger features are offset by them requiring dramatically more effort to implement. It is a bit silly to do that only in the low-level guts of one platform in UE4 as we'd just end up pointlessly duplicating effort.
Do you mean UE4 won't use these features?
 
Devs will be leery of full-on committing to Metal 2 when Apple barely supported further first iteration.

That's rubbish, Apple added features and fixed bugs as you'd expect in macOS 10.13. That is exactly the sort of support for their API that developers want and expect. Don't let the marketing version number confuse you - this is a direct progression not some totally new API where we have to throw out all our code and start again. We just don't get to use the new extensions to the API without more work, which is pretty normal...

Not sure what your complaint is but Apple are improving Metal each year which is what you should expect and far more than we ever got with GL. I have my list of things I'd still like them to fix as a developer, but then I'd have a list if I were working with Vulkan, D3D or consoles too...
[doublepost=1506536321][/doublepost]
Do you mean UE4 won't use these features?

Heaps/Fences were available on iOS 10 and we aren't using them yet. "Not yet" is not the same as "never".

Shader Resource Tables (or Indirect Argument Buffers as Apple call them) have been around in other APIs for a while too and we don't use them in UE4 either unless forced to in a platform's low-level guts (which isn't optimal). Again that we don't use them now doesn't mean we never will - it just isn't a tick-box, it's a major change to the renderer and probably shaders too.
[doublepost=1506536686][/doublepost]
Do you mean UE4 won't use these features?

Also the claimed performance gains require using these features in a highly optimal way. Existing engines will need a lot of refactoring to function that way - but I think it is safe to say that they will move toward that over the next few years.

It may actually be easier for Feral to adopt IABs than for me, because they should be able to reuse a lot of their Vulkan work. I can't in UE4 because the low-level platforms are very much independent little islands of work.
 
Devs will be leery of full-on committing to Metal 2 when Apple barely supported further first iteration.

What?? Apple is full on on Metal, literally all their apps run on Metal now, the main critique is that they sto supporting anything else on their platform, can you elaborate your statement?
 
Heaps/Fences were available on iOS 10 and we aren't using them yet. "Not yet" is not the same as "never".

Shader Resource Tables (or Indirect Argument Buffers as Apple call them) have been around in other APIs for a while too and we don't use them in UE4 either unless forced to in a platform's low-level guts (which isn't optimal). Again that we don't use them now doesn't mean we never will - it just isn't a tick-box, it's a major change to the renderer and probably shaders too.
[doublepost=1506536686][/doublepost]

Also the claimed performance gains require using these features in a highly optimal way. Existing engines will need a lot of refactoring to function that way - but I think it is safe to say that they will move toward that over the next few years.
Do you mean that no major engine has yet been refactored around the next-gen APIs?
Unity says they're using some Metal 2 feature that helped reduce the number of draw calls by half. They don't mention which features though.
In respect to UE4, can the work on console versions benefit the PC/Mac? I've heard that next-gen APIs (DX12 in particular) were closer to console-specific 3D APIs.
 
In respect to Metal 2, the system profiler on macOS 10.13 reports some "GPU family 1 version 2", which corresponds to Metal in Sierra (High Sierra should be version 3). :confused:
 
Last edited:
Do you mean that no major engine has yet been refactored around the next-gen APIs?
Unity says they're using some Metal 2 feature that helped reduce the number of draw calls by half. They don't mention which features though.
In respect to UE4, can the work on console versions benefit the PC/Mac? I've heard that next-gen APIs (DX12 in particular) were closer to console-specific 3D APIs.

I said that UE4 doesn't use Shader Resource Tables or Heaps/Fences yet and I implied that all game engines will move toward using them (or their equivalents) if they aren't already.

I didn't suggest that no other game engine uses any of these kinds of feature - I believe Frostbite does use at least some of these techniques on console. Relatively few, if any, engines use all of these features all of the time in the most optimal way - that's what they'll all move toward I suspect.

UE4 (and presumably Unity) will use the multiple-viewport extension in macOS 10.13 for VR rendering (2 viewports) as it allows you to issue one draw call that the GPU can replicate to each of the viewports, with some help in the shaders. They might also use it in the Editor if they have multiple views onto the same scene. That's the only 10.13 feature I can think of right now that directly reduces draw calls... it's also a fairly easy feature to adopt whereas the big tickets features aren't.

Were we to invest in reworking UE4 for full Heaps/Fences and IAB implementation then we'd see some benefit on all platforms that could support it. It is a CPU overhead reduction so it won't make UE4 run at 10x the frame rate as we'd still be GPU limited. Once there though you can start thinking about much bigger, bolder ways to refactor the rendering pipeline that could be more efficient to render on the GPU, not sure how much but nothing like 10x. But again that's potential and deeply speculative - no one should be expecting that in UE4 any time soon.
 
  • Like
Reactions: jeanlain
Ok. Since you were so quick to port UE4 to Metal, I didn't expect it'd take that long to use certain features.
 
When I tried running GFX Bench (both Metal and OpenGL) today, neither of those benchmarks would run for me.

Jeanlain, what other Metal games/benchmarks are you testing?
 
I tried GFXBench and, as you saw, it didn't work. The only other Metal game I have is Warthunder (only for benchmarks), which I mentioned in some previous post.
Some say the new nVidia web drivers improve performance on Pascal, at least.

(as a side note, there is way to disable Metal in hitman in a setting file. I suppose it forces openGL, which makes the game ~10X slower. :D)
 
  • Like
Reactions: Janichsan
When I tried running GFX Bench (both Metal and OpenGL) today, neither of those benchmarks would run for me.
GFXBench broke (at least for many) months ago, long before High Sierra. The issue is known, but the developers can't seem to be bothered to fix it.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.