Hacker News new | ask | show | jobs
by vvanders 2023 days ago
The answer for that one is real simple, it was mostly a function of what your first target platform was.

Back in that era X360 had the edge by coming out slightly ahead schedule wise so most engines targeted that first and then had a brutal slog to cram things down to the SPUs on the subsequent PS3 port.

If you went the other way though your nicely linearized SPU friendly data code fit in-cache on the X360/PC and usually ran remarkably better.

1 comments

Once again, it was just more work to pipeline your data. That the same code worked well across both isn't my point. I worked on an engine team supporting both of those platforms, so I know. This kind of approach is pretty rare for desktop and mobile apps, which is what the M1 is used for.

Edit: Exceptions being typical DSP realms, such as video/image/sound processing, rendering packages, AI, which are all already targeting GPUs. Note that Final Cut Pro works faster on Intel setups with traditional (non-integrated) GPUs vs M1.

Oh I worked on titles in that era too, and on other oddball platforms like the PSP :).

Without getting into the weeds too much you just weren't doing much with the single CPU core on the PS3. As soon as you booted anything of note it was pretty obvious that you'd have to offload to the SPUs. I'm not saying that it wasn't more work, but most of the other teams we talked with who had done PS3 as a baseline first had a much, much easier time of it.

I would say that any console/handheld developer the approach wasn't unfamiliar, but there were certainly a fair number of engines with roots in the PC space that had a rough time of it. That said it was more down to the SPUs than anything related a unified memory architecture(although we did do some fun shenanigans around streaming music back from VRAM to the CPU to give us more system memory headroom).