3 ms·
> Cell required Assembly programming Demoscene skill level to make good use of them, there was a C sdk, but really you wanted to write Assembly, and relatively
by kuschku 2y ago
> Cell required Assembly programming Demoscene skill level to make good use of them, there was a C sdk, but really you wanted to write Assembly, and relatively tricky Assembly at it.
> It is one of the reasons why Playstation 3 is the less celebrated one, and the console generation where XBox was able to pull ahead.
In retrospect, Cell was a great architecture. In typical Sony fashion it was simply a few years too early. At the time games were single-threaded and many console games still expected CPU and GPU to be in sync.
On the PS2, the difference between using the vector accelerator or not was 1.4x – many developers never bothered. But on the PS3 this was simply not an option, as the performance difference was 6x (!).
The big issue at the time was dev tooling. Most existing engines had no support for dispatching jobs or any form of pipelining. Adding that required redesigning the engine from the ground up. On top of that the dispatcher/manager and the jobs use two different µarchs. Obviously, game and engine developers at the time hated cell with a passion.[1]
But even on the PC and Xbox, frequency scaling ended with the Pentium 4. Multi-core CPUs became mainstream. As CPUs stalled, most of the performance increase on PCs came from GPUs, that had moved from a fixed-function pipeline to shaders.
Slowly, even PC games had to do the bulk of their work in jobs dispatched across multiple cores. Engines that had adapted to Cell got a massive head start.
Today, the very textbook for game development – "Game Engine Architecture", written by Jason Gregory – uses the architecture of the Uncharted games on PS3 as the prime example for how to build a modern engine. As result, nowadays even small indie games are built that way.[2]
________________________
1. Gabe Newell: "Investing in the Cell, investing in the SPE gives you no long-term benefits. There's nothing there that you're going to apply to anything else" https://www.wired.com/2007/10/valves-gabe-new/ https://www.wired.com/2007/10/valves-gabe-new/
2. e.g., Tiny Glade: https://www.youtube.com/watch?v=jusWW2pPnA0 https://www.youtube.com/watch?v=jusWW2pPnA0.
- pjmlp 2y agoYes, in that regard it was ahead of its time, and nowadays many game developers are exploring the possiblities to get rid of everything and explore pure compute for a full software rendering stack, running on GPGPU, agnostic from the actual rendering API. Although I think it would still be better to use specific shading languages as the hardware isn't the same architecture, thus there is only so much one can do with traditional languages without extensions, or GPGPU specific algorithms/data structures, but that is me as outsider with interest in the field. The experts seem to be enjoying exploring CUDA, SYCL, MSL, and similar for such purposes.
- twoodfin 2y agoThat sounds fascinating… any pointers here?
- pjmlp 2y agoFor example OTOY uses CUDA renderering. https://home.otoy.com/render/octane-render/ https://home.otoy.com/render/octane-render/ If you prefer actual code, https://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf https://advances.realtimerendering.com/s2015/aaltonenhaar_si... and "Mesh Shaders - The Future of Rendering" https://www.youtube.com/watch?v=3EMdMD1PsgY https://www.youtube.com/watch?v=3EMdMD1PsgY "GPU driven Rendering with Mesh Shaders in Alan Wake 2" https://www.youtube.com/watch?v=EtX7WnFhxtQ https://www.youtube.com/watch?v=EtX7WnFhxtQ
- deleted 2y ago[deleted]
- Const-me 2y agoAbout rendering triangle meshes with compute shaders, here’s a long technical video how UE5 does that: https://www.youtube.com/watch?v=TMorJX3Nj6U&t=3488s https://www.youtube.com/watch?v=TMorJX3Nj6U&t=3488s