Yeah, PS5 games expect to have up to 16GB of VRAM available, and thanks to GPU vendors being stingy with VRAM to upsell to get that you’d need to buy expensive high end cards.
But that doesn’t do anything to help with the PS5’s shared memory architecture, where because VRAM and RAM are one in the same, textures that need to be in memory aren’t duplicated between RAM and VRAM like on bog standard PCs, which has performance implications.
Windows has support for streaming assets directly from SSDs like the PS5 does now (at least if you have a fast enough NVMe SSD installed, SATA SSDs or older NVMe drives won’t cut it), but PCs still lack the hardware texture decompression of the PS5 which once again impacts performance.
The mass market computers closest in architecture to PS5s are actually M-series Macs, with how they also have a large pool of memory serving as both RAM and VRAM. Once the integrated GPUs on M-series SoCs achieves parity with the PS5’s onboard Radeon, they might actually be the most straightforward to emulate a PS5 on despite needing x86-to-ARM translation.
> PCs still lack the hardware texture decompression of the PS5 which once again impacts performance.
They might not implement it the same, but hardware-accelerated texture decompression has been around on PC for as long as SIMD has existed. With tech like ATSC floating around I'm not sure if it's appropriate to say PCs really "lack" the technology.
> they might actually be the most straightforward to emulate a PS5 on despite needing x86-to-ARM translation.
The problem with Apple Silicon is that nobody wants to use Metal. The big Switch emulator Yuzu should have also been a perfect fit for Apple Silicon too, but it took years to get "ported" and the end result used MoltenVK for the GPU API. Now that it's here, systems like the Steam Deck are hitting 60fps where M2 struggles to hold 50:
The iOS games market speaks for itself. It's littered with freemium games and low-effort asset flips, the number of shitty 2D lottery/lootbox games outnumber Monument Valleys 100:1.
The vast majority of substantial game experiences are not getting ported to iOS. The reason for this is mostly Metal-related. Apple has acknowledged this themselves on many occasions, like the last WWDC with their Game Porting Toolkit.
Why weren’t they getting ported before Metal when OpenGL 3.1 was still at parity with the rest of the industry?
The graphics API is not the significant portion of the porting issue. It’s market share and the fact that until recently, very few Macs by market share had great GPUs.
The game porting toolkit works alongside wine and Rosetta to make time to first pixel easier for developers to consider the platform.
Regardless of metal or not, time to first pixel and consistency of hardware has always been the biggest hurdle. Most big engines support metal just fine already, so it’s not the primary hurdle people claim otherwise we’d see more unreal and Unity games running natively on Mac’s.
Now every Mac has a decent GPU (for some definition of decent) with very similar hardware.
> Why weren’t they getting ported before Metal when OpenGL 3.1 was still at parity with the rest of the industry?
They were. The number of OpenGL games was minuscule though, and Apple's underlying APIs have broken now, rendering most of these games unplayable. Apple doesn't really provide a stable gaming runtime, outside of the DirectX-like promise that if you use their proprietary APIs they won't depreciate them.
> The game porting toolkit works alongside wine and Rosetta to make time to first pixel easier for developers to consider the platform.
See, that's the thing. "time to first pixel" was an issue because of Apple's APIs. If you translate non-native program calls into native ones, then obviously you circumvent the problem.
Furthermore, the reason why Game Porting Toolkit didn't exist before now was because Apple had to write a Metal translator for DirectX. The community never wrote one like they did for Vulkan, likely because nobody wants to translate DirectX to a second proprietary API. Kinda defeats the purpose, at least for non-commercial contributors.
> Most big engines support metal just fine already, so it’s not the primary hurdle people claim otherwise we’d see more unreal and Unity games running natively on Mac’s.
Most big engines also support PS5 and Nintendo Switch as development targets. The reason why they are relatively unpopular for porting is the exact same as Apple's - the APIs are nonstandard and closed, with limited distribution and long-term support options. Why would anyone put in the majority of their effort to support a minority of the market?
The number of Mac metal games is about the same as the number of Mac OpenGL games. Which is to say minuscule like you said, but all that shows is that it’s not about the APIs or we’d see Unity/Unreal games a plenty.
It’s just down to market share. Time to first pixel still matters for off the shelf engine based games because devs need to get over the hump of building it etc let alone consider all the possible hypotheticals of how it works, even before they get to APIs.
Game porting toolkit solves that. It’s not meant as a general purpose translator , just to get people over that hump
And again it’s just down to market share. There are plenty of AAA games on iOS that use the same engines as PC games without having Mac versions. Take the Call of Duty games for iOS. Why wasn’t there prevalent CoD on macOS?
All that proves to me is that APIs aren’t the primary reason.
I don't think my statement is wrong. People don't like porting to Switch or Playstation 5, there's a significant amount of development and testing overhead required to support either platform. The Switch has a decently popular SDK backed with Nvidia drivers, but requires deliberate ARM ports and very carefully written Vulkan code (if any). The PS5 is a little friendlier to PC-first devs, but still has a unique runtime and zero options for DirectX code. Both platforms require fairly bespoke versions of your game, compared to the "press play" porting experience of the Deck or API parity of modern DirectX on Xbox.
I wish the situation was better for these platforms, but they reap what they sow when they make highly exclusive SDKs and resist open specification.
> By the way, game studios don't have any issue translanting DirectX to LibGNM/X and NVN.
Are there DirectX translators a-la DXVK for GNM and NVN? As far as I'm aware, porting from DirectX has to be done by-hand unless you're using an IR language like SPIR-V (at which point you may as well use native Vulkan).
I would advise to spend some time in developer conferences like GDC, GDCE, PAX.
The only people that don't like porting APIs are usually indie devs in some FOSS forums, proper game studios have hardly any issues dealing with multiple backeds.
Doing game engines with pluggabble backends has several decades of industry experience since Atari and ColecoVision.
Games IP, game design and getting good publishing deals is what matters, not the 3D APU du jour.
As for shaders, usually there is either an internal language, shader graphs, or chosing a specific one, with a translation layer in the middle.
There is no native Vulkan on Playstation, and in what concerns Switch, Vulkan and OpenGL aren't as used as FOSS folks think.
I’m sorry but this post reads like someone dyed a little too in the wool on Linux and hasn’t worked in the video game industry.
Except for indies, PS5 and switch get a ton of high profile games. Very few companies have issues porting over and most will have their engines able to target multiple platforms.
Very few people use Vulkan on the switch. It, like the PS5, has its own graphics api.
Very few games ,outside of the few indies that make their own engines, target DirectX or a specific APi. They use an intermediary HGI that abstracts over various backends so that they can target the wide range of console behaviour that exists from APIs to console specific features.
Thinking about PS5 development from the perspective of DXVK or SPIR-V is the wrong way to think about it. Higher level abstractions coupled with low level backends make it easy for any well architected engine.
Like the sibling comment says, please spend some time perusing the GDC vault or among professional game devs. Your world view on the matter is not representative of the those communities. It is more representative of the external view common within the Linux gaming community that holds Vulkan on a pedestal
Exactly. They’ll do what they need to do for any market they deem to have an adequate ROI.
I always point to Linux when people mention APIs being the issue. Linux gaming was depressing before Proton, despite having both Vulkan and up to date OpenGL. Devs could have supported them but didn’t. So the API isn’t the big reason people make it out to be
Linux actually seems like the antithesis of your point. It has the lowest ROI of any of the platforms we've mentioned, yet the highest degree of compatibility with PC and console games outside Windows. If openness and API support isn't the issue, then why didn't DXVK get written for Apple platforms first?
Not the antithesis unless you’re purposely ignoring that nobody ports games to Linux.
Almost the entire Linux gaming scene is dependent on the fact that Valve wanted to make consoles, failed with the steam machine and then figured the formula out with the steam deck. That’s why DXVK exists, between funding and direct development. It was a high RoI for valve to have their own platform. Nobody else cares.
Linux is not a target gaming platform. Even though it has native Vulkan and OpenGl, nobody targets it and nobody targeted it before proton either.
Hardly any game studio that targets Android bothers with Linux, despite the similarities of being a Linux kernel, with the NDK having ISO C, ISO C++, OpenGL ES/Vulkan, OpenSL, OpenMAX.
Not even Valve managed to change their mind in this regard.
Yep. I think if anything valve actually made the state of Linux targeted gaming enshrined as forever translated since proton is so good. There’s no impetus to even bother making Linux ports and dealing with support when people are willing to translate and blame the lack of native support if it doesn’t work well for some reason.
I imagine that’s the reason Apple doesn’t allow studios to ship with game porting toolkit. They likely want to prevent the eternal translation solution, especially since their GPUs are so different than the original targeted ones.
Excellent points on memory architecture. Though I’d posit that the non-base M series GPUs are actually already equal or higher performing than the fairly aging Radeons on a PS4/5, depending on the respective SKUs
The wild cards will be translation overhead , differences in TBDR access and thermal headroom.
But that doesn’t do anything to help with the PS5’s shared memory architecture, where because VRAM and RAM are one in the same, textures that need to be in memory aren’t duplicated between RAM and VRAM like on bog standard PCs, which has performance implications.
Windows has support for streaming assets directly from SSDs like the PS5 does now (at least if you have a fast enough NVMe SSD installed, SATA SSDs or older NVMe drives won’t cut it), but PCs still lack the hardware texture decompression of the PS5 which once again impacts performance.
The mass market computers closest in architecture to PS5s are actually M-series Macs, with how they also have a large pool of memory serving as both RAM and VRAM. Once the integrated GPUs on M-series SoCs achieves parity with the PS5’s onboard Radeon, they might actually be the most straightforward to emulate a PS5 on despite needing x86-to-ARM translation.