Hacker News new | ask | show | jobs
by K0nserv 4469 days ago
I did not know that the GPUs are that different from their desktop cousins. Do you know the reason for this?
1 comments

They are not, the problem is how you use them. For example - fetching a texture data on PS3 takes about 50 clock cycles, while on a PC it takes 1000-2000 cycles, because the request has to go through all the driver layers first. PS3 uses its own version of OpenGL(PSGL) which has a much more low level access to hardware. That level of access is simply not provided by PC hardware, so it has to be somehow emulated - and for high performance GPUs we have nowadays, it's rather difficult.
I agree with your general point, but PSGL is pretty much never used. I only know of a couple of small indie PSN titles that used it, mostly to ease the porting process from PC. It's way too slow for the big games, who use a lower level API called LibGCM.
Do you think DX12 or Mantle will help with overcoming the high-level API overhead?
The 360 emulator (Xenia) dev seems to think so.
I imagine that timing and synchronisation between things has to be emulated too for various operations to work as expected, further complicating this.
That was actually a big problem with PS2 emulation - some parts of the system were hardcoded to wait only a certain amount of time for a function to finish - because that function was ran on a different chip, and would always take the same amount of time. Now emulating that behaviour was incredibly difficult, especially if all of it had to run on a single CPU. The problem has been mitigated somewhat by multi-core CPUs,with each core emulating a different part of the PS2, but it's still far from ideal.
Maybe it's possible to pre-load a lot of textures and stuff since PC GPU:s has so much RAM