iirc, Grumpycoder, Ethosik, and XWhiplash all have made statements on this issue.
But, not turbineseaplane?! I thought he was referring to himself, especially since he didn’t mention anyone else.
iirc, Grumpycoder, Ethosik, and XWhiplash all have made statements on this issue.
I don’t think you have to be a game dev yourself to notice a trend.But, not turbineseaplane?! I thought he was referring to himself, especially since he didn’t mention anyone else.
I don’t think you have to be a game dev yourself to notice a trend.
In principle, I agree.Expertise helps, especially when we’re talking about engineers who have working experience with a job that they’re paid to do. Whether it’s network coding, or UI coding, who are part of a team of hundreds, or a one-person team. It’s too easy to just talk about our own personal take on a trend, as though that carries as much water as those of actual working programmers. That’s too informal an approach for me to be meaningful, because I’ll always pick the data over opinions about that same data.
Let's discuss this first as its the more interesting of your two arguments IMHO.Two impediments:
2. The Mac is unattractively priced for the masses, hence it won't ever be as widespread, hence the majority of developers have no interest to develop for macOS.
I don't see how 2. would ever change.
1. No GPU power to compete with the top offerings from nVidia/AMD (in gaming, not in video rendering)
With MetalFX GPU performance doesn't matter anymore, just render at a lower resolution internally and upscale (temporal or scaler) and move on. Especially if the upscaling is hardware accelerated, "free" performance boost!Thank you for sharing these numbers. I find them interesting. They seem to show that Apple has found a lever to increase their market share considerably and – more importantly – opposed to the negative trend of Windows PCs. The comparison with the number of PS5 sold is a bit off, since Sony was and still is struggling to deliver as many units as people want. But let’s see how far Apple can get or even turn the market to attract the interest of developers.
You say the Apple GPU is more than twice as fast as a PS4. Do you mean the M1 base, pro, max or Ultra? Apple Silicon is fragmented in terms of GPU Power and higher performance comes at a significantly higher cost. And how is it compared to something more modern like a PS5? I can only remember that Apple compared the first M1 to some integrated Intel GPU which is not exactly amazing. Now I have read that not even the most expensive desktop from Apple, the Mac Studio with an M1 Ultra, can beat a 3090 (in terms of raw power, neglecting performance per watt). Which leads me to the other point about GPU power.
I’m not sure that Apple doesn’t have to compete with enthusiast tier GPU performance. This is especially important for AAA titles. GPU performance is a major USP during the introduction of a next gen console or next gen desktop GPU. Granted, there are many examples of great games that don’t need the lates and greatest from nVidia. With Nintendo Switch there’s even the example of a whole platform. But they excel at the games.
Thank you for sharing these numbers. I find them interesting. The comparison with the number of PS5 sold is a bit off, since Sony was and still is struggling to deliver as many units as people want.
You say the Apple GPU is more than twice as fast as a PS4. Do you mean the M1 base, pro, max or Ultra? Apple Silicon is fragmented in terms of GPU Power and higher performance comes at a significantly higher cost. And how is it compared to something more modern like a PS5? I can only remember that Apple compared the first M1 to some integrated Intel GPU which is not exactly amazing. Now I have read that not even the most expensive desktop from Apple, the Mac Studio with an M1 Ultra, can beat a 3090 (in terms of raw power, neglecting performance per watt). Which leads me to the other point about GPU power.
I’m not sure that Apple doesn’t have to compete with enthusiast tier GPU performance. This is especially important for AAA titles. GPU performance is a major USP during the introduction of a next gen console or next gen desktop GPU. Granted, there are many examples of great games that don’t need the lates and greatest from nVidia. With Nintendo Switch there’s even the example of a whole platform. But they excel at the games.
I'm not sure if this is meant to be sarcastic or not. Assuming its good, MetalFX will certainly help lower the cost of rendering an image that looks good at the displays "native resolution" (or 4K on an external screen,) but it's not magic.With MetalFX GPU performance doesn't matter anymore, just render at a lower resolution internally and upscale (temporal or scaler) and move on. Especially if the upscaling is hardware accelerated, "free" performance boost!
What do you mean costs more than rendering at native resolution? I wasn't being sarcastic.I'm not sure if this is meant to be sarcastic or not. Assuming its good, MetalFX will certainly help lower the cost of rendering an image that looks good at the displays "native resolution" (or 4K on an external screen,) but it's not magic.
Looking at what FSR 2.0 is doing today, if MetalFX can achieve similar results, it means that a game can render internally at between 1/4 - 1/2 of the output resolution and deliver a result that varies between acceptable and "near native," however it does cost significantly more than actually rendering at those lower resolutions and, at least in FSR's case, seems to do better with higher target output resolutions, and struggle when targeting resolutions below 1440P.
Anyway that's enough "foruming" for one night LOL
Apologies for being unclear (both in my explanation and on whether or not you were being sarcastic).What do you mean costs more than rendering at native resolution? I wasn't being sarcastic.
I even think Capcom mentioned MetalFX as though it is why RE8 can run at the resolutions/performance it runs at on the hardware they mentioned in the presentation.
I mainly wanted to get across that for a variety of reasons, this is just not true.With MetalFX GPU performance doesn't matter anymore, just render at a lower resolution internally and upscale (temporal or scaler) and move on. Especially if the upscaling is hardware accelerated, "free" performance boost!
Uninformed guess:First, the lower the internal resolution, the lower the quality of the final output, particularly if the output resolution itself is not extremely high (>1440P.)
Uninformed huh... I'll admit we won't know for sure how MetalFX performs until we have a finished product in hand but... I'm not even sure you understood what I was talking about. I was referring to how existing temporal reconstruction techniques (FSR 2.0, DLSS, Unreal Engine Temporal Upscaling) tend to struggle at delivering a near or "better than native" result when the output resolution is significantly lower than 4K, and particularly when it is LOWER than 1440P. These temporal upscalers are getting very good at taking an internal resolution of 1080P, ~1200P, or 1440P and reconstructing a nice looking 4K output, but at, say, a reconstructed 1080P (or even 1440P) where the internal resolution is often 720P, 540P (or lower) the result can be less convincing.Uninformed guess:
I’d bet the internal renderer is exactly 1440p. It seems like Apple’s devices use that as a base and scale text rendering from there (if I’m remembering the post-Mojave rendering method correctly).
Considering Apple’s displays try to use even multiples of that, I’d about bet that they’re extending that capability.
Pretty much this. The whole thing is totally pointless if not shooting for 4k output. That's what it's always been about. We've always seen 1080p/1440p with ~60fps and a massive drop with 4k. When Nvidia released DLSS they bridged that gap and 4k ~60fps became a reality. Starting with anything sub 1080p seems pointless.I was referring to how existing temporal reconstruction techniques (FSR 2.0, DLSS, Unreal Engine Temporal Upscaling) tend to struggle at delivering a near or "better than native" result when the output resolution is significantly lower than 4K, and particularly when it is LOWER than 1440P. These temporal upscalers are getting very good at taking an internal resolution of 1080P, ~1200P, or 1440P and reconstructing a nice looking 4K output, but at, say, a reconstructed 1080P (or even 1440P) where the internal resolution is often 720P, 540P (or lower) the result can be less convincing.
Are you saying that Metal 3 brings all the features of DX12 tier 3?Even the base Apple Silicon Macs have more than adequate performance to support modern games and Metal 3 brings a number of crucial quality of life updates and essentially closes the feature parity with DX12 (while being much more developer-friendly and exceeding it in flexibility in some areas).
Are you saying that Metal 3 brings all the features of DX12 tier 3?
((*ResourceID) bindings_buffer.contents())[1000] = my_texture.gpuResourceID();
struct TextureBindings {
// one million texture bindings
texture2d<float> textures[1000000];
};
// create a buffer for matrix data
auto uniform_buffer = device.newBuffer(sizeof(my_uniform_data));
// copy the data to the gpu buffer
memcpy(uniform_buffer.contents(), &my_uniform_data, sizeof(my_uniform_data));
// bind the buffer to the pipeline at index 0
encoder.setVertexBuffer(uniform_buffer, 0, 0)
So we're still stuck at the same old porting issues many are not willing to work around. 🤷♂️DX12 descriptor heap tiers are not relevant to Metal because Metal does not have descriptor heaps. With Metal, shader bindings are encoded into regular GPU memory buffers and the upper bound here seems to be the maximal buffer size (but even then you can just use multiple buffers .
Apple documentation, somewhat unluckily, referred to "up to 500,000 buffers or textures" for argument buffers tier 2, but it has been clarified by an Apple GPU engineer that this is the number of resources that you can expect to simultaneously access in a shader pipeline, not the number of resources you can encode. I had no problems with encoding five million buffer references in an argument buffer, and what's more, I could also successfully used all of them in a single shader invocation, which shows that the tier 2 limits on Metal are more of a recommendation than a hard limit. Anyway, no real game is going to use hundreds of thousands of textures in a single render pass, so there won't be any problems here.
What's more relevant for porting games from DX12/Vulkan to Metal is that Metal 3 has redesigned how bindings are encoded in GPU buffers. Previously, you had to rely on a type safe wrapper (MTLArgumentEncoder) to do the encoding, which was annoying and didn't map well to how these things work in other APIs. But Metal 3 gives you access to GPU resource pointers, and you simply write those pointers into the buffer memory. So setting a texture binding with Metal 3 is as easy as
C++:((*ResourceID) bindings_buffer.contents())[1000] = my_texture.gpuResourceID();
with the bindings being declared like this in the shader
C++:struct TextureBindings { // one million texture bindings texture2d<float> textures[1000000]; };
and since Metal already supports bindless paradigm (sparse bindings and dynamic indexing of resources), emulating both DX12-style descriptor heaps and Vulkan-style descriptor heaps becomes a trivial matter of allocating some large metal buffers and copying some pointers around.
Steam Deck says hi....Pretty much this. The whole thing is totally pointless if not shooting for 4k output. That's what it's always been about. We've always seen 1080p/1440p with ~60fps and a massive drop with 4k. When Nvidia released DLSS they bridged that gap and 4k ~60fps became a reality. Starting with anything sub 1080p seems pointless.
Are you saying that Metal 3 brings all the features of DX12 tier 3?
So we're still stuck at the same old porting issues many are not willing to work around. 🤷♂️
It was never an issue to bring anything DX12 to Metal, it was always a question of cost and time to invest. In other words, same old, same old.
So does my Game Boy from 1989.Steam Deck says hi....
Personally I am not a fan of resolution scaling. So I have it turned off on my deck. I have read that it makes things more smeared/grainy so I tend to avoid it.So does my Game Boy from 1989.
Have you tried it on the Steam Deck? It's not doing much for resolution, in fact, at these low resolutions it works more like a regular AA algorithm, which could have been done by... an AA algorithm in the first place. Search YouTube, bunch of videos out there showing results.
Have you tried it on the Steam Deck? It's not doing much for resolution, in fact, at these low resolutions it works more like a regular AA algorithm, which could have been done by... an AA algorithm in the first place. Search YouTube, bunch of videos out there showing results.
Have you actually tested FSR 2.0 on SteamDeck (it's only supported in Deathloop and God of War at the moment) ?Personally I am not a fan of resolution scaling. So I have it turned off on my deck. I have read that it makes things more smeared/grainy so I tend to avoid it.
Capcom livestream about to begin…
I see your point. It will be interesting to see how this plays out.In other words, the number of Apple Silicon Macs out there is quickly approaching (if not already at) a level where the total addressable market should be large enough to begin attracting significant developer attention, refuting the point that Macs are not "widespread" enough.
They could just render native for these low resolutions. Steam Deck is 800p, vs. 540p that would cost them what, 5fps?I think this take is a bit unfair. The quality of most temporal upscaling solutions definitely suffers at lower output resolutions (seemingly loosing that "better than native" look) but they still produce results that are far better than either simply rendering at a lower res and or relying on spatial upscalers/sharpeners like FSR 1.0.
Of course the market isn't moving away, it makes sense. DLSS is a fantastic thing and it allows to play 4k60, which was something we've not been able to do before it arrived. That might change with the upcoming 40x0 series, which probably bring enough power to do it natively. But then we could go 4k120 or maybe 8k60...Of course, there's definitely a subjective argument to be made about the results modern TAA produces even at native resolution, but that's a different discussion and honestly I don't see the market moving away from these techniques.