By: Jukka Larja (roskakori2006.delete@this.gmail.com), November 5, 2015 3:51 am
Room: Moderated Discussions
Banana_Comedown (yetanotherlurker.delete@this.neverpost.com) on November 4, 2015 11:17 am wrote:
> On the 360 and PS3 AAA titles used every scrap of every processing resource available. In fact the
> progress made in visual fidelity over their lifetimes was by and large attributable to hiving off
> as many GPU functions to the CPU as possible. AAA games in the last few years of that console cycle
> were very well threaded and exhaustively tuned to the hardware. The threading models were not feasibly
> transferable to an x86 CPU and so 'basic' versions of ingenious schemes were put in place for the
> move to the Windows space, hence the poor multicore awareness often displayed in PC versions.
Well, my guess is that you just have more narrow definition for AAA games than I do. Some of them certainly made a great use of each console's special cababilities, especially exclusive titles, but that seems to have been more exception than a rule. Many of the big games aren't particularly good looking at all (think of all the crap that gets rushed out for Christmas or movie premier), but you could of course argue that those aren't AAA at all.
(Definition of what makes an AAA game is murky. I mostly consider budget (including marketing budget), some people seem to consider only success (which makes many mobile games technically AAA), some think that there's a certain technical and artistic quality required, which would for example exemp all Bioware's recent games :) . Or you can require of combination of all the above.)
Anyway, running code better suited for GPU on CPU just because you happen to have abundance of CPU resources and too little GPU isn't what I would call "well threaded code". It may be ingenious on console, but it doesn't make the game require or even run better on octa-core PC.
> I would myself be very surprised if a big hitting i3 could beat the consoles given how intensely the code is
> optimized to sidestep Jaguars limitations and work to its strengths. The effort gone to avoid cache misses for
> example is quite remarkable. With the i5 yeah you have a point but the on-paper capabilities of the console
> CPU cores are in practice substantially magnified by the software engineering behind their SDKs and games.
The efforts to avoid cache misses help 3.8 GHz i3 too. Consoles do have much more streamlined graphics pipeline (and whole OS too) and much better facilities to offload stuff for GPU (if for nothing else, then just because on PC you want to support low end and older hardware too). I'm not trying to dispute the huge benefit you get from optimizing the game for one target and only having to worry about (and optimize) a single code path. Much of the effect is also cultural. On consoles many games are rendered below screen resolution or variable resolution to stay at decided FPS. For whatever reason, such techniques are frowned upon in PC world and considered cheating.
Anyway, PS4 and Xbox One having 6 core CPU's doesn't automatically mean that PC gamer must get a hex-core or octo-core to achieve similar performance. If PC port is done badly (or, to use more console friendly way to say the same thing, a quote from you: "The threading models were not feasibly transferable to an x86 CPU and so 'basic' versions of ingenious schemes were put in place for the move to the Windows space, hence the poor multicore awareness often displayed in PC versions."), then nothing will help, and it's just better to buy the console rather than pour hundreds of euros to faster CPU and GPU. If port is done even moderately well, then quad-core i5 or even dual-core i3 should be more than enough.
-JLarja
> On the 360 and PS3 AAA titles used every scrap of every processing resource available. In fact the
> progress made in visual fidelity over their lifetimes was by and large attributable to hiving off
> as many GPU functions to the CPU as possible. AAA games in the last few years of that console cycle
> were very well threaded and exhaustively tuned to the hardware. The threading models were not feasibly
> transferable to an x86 CPU and so 'basic' versions of ingenious schemes were put in place for the
> move to the Windows space, hence the poor multicore awareness often displayed in PC versions.
Well, my guess is that you just have more narrow definition for AAA games than I do. Some of them certainly made a great use of each console's special cababilities, especially exclusive titles, but that seems to have been more exception than a rule. Many of the big games aren't particularly good looking at all (think of all the crap that gets rushed out for Christmas or movie premier), but you could of course argue that those aren't AAA at all.
(Definition of what makes an AAA game is murky. I mostly consider budget (including marketing budget), some people seem to consider only success (which makes many mobile games technically AAA), some think that there's a certain technical and artistic quality required, which would for example exemp all Bioware's recent games :) . Or you can require of combination of all the above.)
Anyway, running code better suited for GPU on CPU just because you happen to have abundance of CPU resources and too little GPU isn't what I would call "well threaded code". It may be ingenious on console, but it doesn't make the game require or even run better on octa-core PC.
> I would myself be very surprised if a big hitting i3 could beat the consoles given how intensely the code is
> optimized to sidestep Jaguars limitations and work to its strengths. The effort gone to avoid cache misses for
> example is quite remarkable. With the i5 yeah you have a point but the on-paper capabilities of the console
> CPU cores are in practice substantially magnified by the software engineering behind their SDKs and games.
The efforts to avoid cache misses help 3.8 GHz i3 too. Consoles do have much more streamlined graphics pipeline (and whole OS too) and much better facilities to offload stuff for GPU (if for nothing else, then just because on PC you want to support low end and older hardware too). I'm not trying to dispute the huge benefit you get from optimizing the game for one target and only having to worry about (and optimize) a single code path. Much of the effect is also cultural. On consoles many games are rendered below screen resolution or variable resolution to stay at decided FPS. For whatever reason, such techniques are frowned upon in PC world and considered cheating.
Anyway, PS4 and Xbox One having 6 core CPU's doesn't automatically mean that PC gamer must get a hex-core or octo-core to achieve similar performance. If PC port is done badly (or, to use more console friendly way to say the same thing, a quote from you: "The threading models were not feasibly transferable to an x86 CPU and so 'basic' versions of ingenious schemes were put in place for the move to the Windows space, hence the poor multicore awareness often displayed in PC versions."), then nothing will help, and it's just better to buy the console rather than pour hundreds of euros to faster CPU and GPU. If port is done even moderately well, then quad-core i5 or even dual-core i3 should be more than enough.
-JLarja