Digital Foundry Article Technical Discussion Archive [2011]

Status
Not open for further replies.
So Neb and the others were right after all - there is no realtime GI on consoles.

And why does the PS3 have a handicap in terms of vertex processing, but not pixel shading?
 
He makes it sound like they didn't have time to do everything they wanted to do, which makes sense. I'd like the see what they can achieve in the future :smile:

Really nice interview, though. It's great that they're finally starting to open up a bit.

Yeah, really looking forward to what they will do in Kingdoms.
 
Haha maybe they should have kept this in to keep the pc player in a buzz about crysis 2 bricking their systems. Still i find kinda of stupid that if a games looks good on a wider range of machines it automatically less impressive then the previous iteration and that they went backward in rendering techniques.

"We learned a lot with the consoles, especially how to make smarter and efficient usage of scarce rendering resources. In Crysis 1 times, our attitude was, 'oh what the heck, what's one more additional full resolution FP16 target or a couple of full-screen passes, let's just add it.' You can't take such a naive approach for consoles," Sousa says, harking back to the 'open spec' he had to play with on the previous PC-only Crysis titles.
 
And why does the PS3 have a handicap in terms of vertex processing, but not pixel shading?

Because RSX was based on the architecture of a PC GPU that was released in June of 2005. This architecture was designed to run PC games of that era well with the goal of maintaining competitive performance through a typical PC GPU upgrade cycle. This is very different from the usual situation we have found in the 3D era where, on release, console graphics hardware is more advanced than what you can find in the PC space. In the case of the PS3, by the time it launched Nvidia had already launched the successor to the architecture RSX is based on.

RSX also lacks a unified shader architecture so has a fixed ratio of vertex shader units to pixel shader units (1:3 in GeForce 7800/7900 GTX. Same in RSX?). Once those vertex units are fully utilized, there's no other on-chip resources that can be used for vertex operations, even if there are pixel shader units free.

It seems that since 2005, the demands on vertex hardware have increased to require a larger proportion of compute resources relative to pixel shader operations than the RSX is optimized to handle.
 
The end of the article

"I'm quite confident they will learn to push our engine to its limits by carefully using their resources. From the tech side we will of course keep optimising and improving further, there is no such thing as the best optimisation/approach - performance and quality is always a moving target. There were also some areas we wanted to push further, for example minimising memory transfers, but we just lacked the time to make it happen."

Would this have cured some of the games severe pop in, which imo is the graphics biggest bugaboo on console? Is that what he's talking about?

If so, shame they couldn't have got that done but, will make future CE3 games look even more amazing on console.
 
The Making of Crysis 2

Edit: Really awesome stuff, great work grandmaster :)

"GPU side, when programmed properly, they are fairly similar. We just have to be conscious of the clear handicap on PS3 RSX in terms of vertex processing, but other than that, on fragment processing side they are relatively similar, both have their strengths but such differences become irrelevant in the long run, especially when compared to PC platforms,"

"The SPUs do indeed allow for easing the workload for the RSX. We decided not to go too crazy in this direction as it requires render targets and assets to reside in main memory. We are able to run skinning for example on SPUs as well, but we could not afford the additional memory required in the end.
It is possible to use the SPUs to support deferred shading, run post-process effects and do triangle culling. But again, it all requires main memory we did not have as our levels are fairly large compared to other games and our SPUs were in fact pretty loaded with particles, animations, physics, low-level rendering and culling already."


"The 1152x720 resolution on 360 simply allows you to maximize eDRAM usage on a deferred lighting engine without having to resort to tiled rendering.
On the PS3, due to the extremely limited system memory we resorted to downloading memory into video memory.
We bumped into severe video memory limitations, so it was a good compromise to save a big chunk of video memory for other usages. Plus, while on consoles we are CPU-bound during combat due to physics, AI, etc, on less intensive situations on the PS3 we are GPU-bound, so the additional quick 10 per cent performance gain was also very welcome."

GI:

"On consoles all milliseconds and memory counts, so at end of this project we made the tough decision to disable it for consoles. We still have a very simple and coarse GI approximation on consoles, where our art department fully controls the look, meaning we pay couple of milliseconds on areas where it is actually making a significant visual contribution."



So game is processing graphics mostly on RSX, and Cell is used for "standard CPU stuff" - and still, PS3 version is good, much better than most multiplatform releases. That's impressive :)
Great job, again, Grandmaster! And, I agree with you, Trejser. It is indeed impressive for RSX doing the heavy graphics work. :) I figured the resolution was lowered due to the current (18MB?) available RAM difference. I think it would've been nice, if they went with NAO32 on PS3 instead. They could've potential saved some precious memory right there. It looks like Crytech went RAM crazy on this one.
 
RSX also lacks a unified shader architecture so has a fixed ratio of vertex shader units to pixel shader units (1:3 in GeForce 7800/7900 GTX. Same in RSX?). Once those vertex units are fully utilized, there's no other on-chip resources that can be used for vertex operations, even if there are pixel shader units free.

It seems that since 2005, the demands on vertex hardware have increased to require a larger proportion of compute resources relative to pixel shader operations than the RSX is optimized to handle.

Ah ok, the 1:3 ratio of vertex to pixel shader units makes sense.

Though you'd think that geometry processing was more important at the beginning of this console generation (as Joker and others have remarked) when developers used more polys and higher res textures with much simpler lighting and shading techniques, wheras now shaders are far more heavily utilised (in Western titles at least).

And can't the SPUs help with geometry processing, things like SPU culling? Certainly games like Uncharted (with the most detailed player character model for a third person title) make it seem that it isn't such a big issue.

I also don't understand why the 12% lower resolution on PS3 leads to a huge 18MB saving in RAM, unless they have a huge number of buffers where the savings accumulate across.
 
Last edited by a moderator:
Ah ok, the 1:3 ratio of vertex to pixel shader units makes sense.

Though you'd think that geometry processing was more important at the beginning of this console generation (as Joker and others have remarked) when developers used more polys and higher res textures with much simpler lighting and shading techniques, wheras now shaders are far more heavily utilised (in Western titles at least).

And can't the SPUs help with geometry processing, thinks like SPU culling? Certainly games like Uncharted (with the most detailed player character model for a third person title) make it seem that it isn't such a big issue.
SPUs can do up to occlusion culling, but they can also do vertex processing/shading which is much simpler. I think contrary to what many had believed here regarding the SPU usage, they just didn't have the manpower especially since they are trying to promote a common toolset that automatically shares stuff like shaders between target platforms.
 
SPUs can do up to occlusion culling, but they can also do vertex processing/shading which is much simpler. I think contrary to what many had believed here regarding the SPU usage, they just didn't have the manpower especially since they are trying to promote a common toolset that automatically shares stuff like shaders between target platforms.

"... But again, it all requires main memory we did not have as our levels are fairly large compared to other games and our SPUs were in fact pretty loaded with particles, animations, physics, low-level rendering and culling already."

Sounds to me like they were using the SPUs quite heavily and couldn't spare the memory or SPU time to offload more graphics tasks. It seems like they were doing culling on the SPUs anyway.
 
On the PS3, due to the extremely limited system memory we resorted to downloading memory into video memory.

We bumped into severe video memory limitations, so it was a good compromise to save a big chunk of video memory for other usages. Plus, while on consoles we are CPU-bound during combat due to physics, AI, etc, on less intensive situations on the PS3 we are GPU-bound, so the additional quick 10 per cent performance gain was also very welcome."

yea pretty much as the situation exactly as has been described here by many for quite some time now...

"... But again, it all requires main memory we did not have as our levels are fairly large compared to other games and our SPUs were in fact pretty loaded with particles, animations, physics, low-level rendering and culling already."

Sounds to me like they were using the SPUs quite heavily and couldn't spare the memory or SPU time to offload more graphics tasks.
It seems like they were doing culling on the SPUs anyway.
 
"... But again, it all requires main memory we did not have as our levels are fairly large compared to other games and our SPUs were in fact pretty loaded with particles, animations, physics, low-level rendering and culling already."

Sounds to me like they were using the SPUs quite heavily and couldn't spare the memory or SPU time to offload more graphics tasks. It seems like they were doing culling on the SPUs anyway.

Well, we know they definitely couldn't spare the memory. It seems like they were doing a small amount of culling on the SPUs. Crytek mention one or two forms of culling they weren't doing that Sony's 1st party usually implement.
 
"... But again, it all requires main memory we did not have as our levels are fairly large compared to other games and our SPUs were in fact pretty loaded with particles, animations, physics, low-level rendering and culling already."

Sounds to me like they were using the SPUs quite heavily and couldn't spare the memory or SPU time to offload more graphics tasks. It seems like they were doing culling on the SPUs anyway.

So they use 4 SPUs in their task system according to the engine docs posted on this forum a while ago. For a 30fps game that's ~120ms of processing time. I'd be surprised if they are using all of it for "particles, animations, physics, and culling". (I excluded low-level rendering because they give that its own SPU.) It did sound like they use a rather DMA-heavy approach which is a fairly inefficient way to use SPUs, but still... 120ms is a lot of time.

It's rude of me to second guess other developers without seeing their profiles but this didn't quite make sense to me. On the other hand memory does make sense. Lots of cross platform titles have to resort to heroics to deal with the split memory situation on PS3. Having read the article I have to conclude that memory was the biggest threat to shipping on PS3 for most of their project, which mirrors my own experience.
 
What I am curious about most is their streaming system, as a good streaming system is the biggest gamechanger in terms of gaining available memory on PS3 I think.
 
Does GG use SPUs for post processing or RSX in KZ3?
They use the SPUs for their post processing chain.

What I am curious about most is their streaming system, as a good streaming system is the biggest gamechanger in terms of gaining available memory on PS3 I think.
That's the million dollar question. Do they have an efficient streaming system? I would say the chances are slim. Does anyone have solid info on this?
 
So they use 4 SPUs in their task system according to the engine docs posted on this forum a while ago. For a 30fps game that's ~120ms of processing time. I'd be surprised if they are using all of it for "particles, animations, physics, and culling". (I excluded low-level rendering because they give that its own SPU.) It did sound like they use a rather DMA-heavy approach which is a fairly inefficient way to use SPUs, but still... 120ms is a lot of time.

It's rude of me to second guess other developers without seeing their profiles but this didn't quite make sense to me. On the other hand memory does make sense. Lots of cross platform titles have to resort to heroics to deal with the split memory situation on PS3. Having read the article I have to conclude that memory was the biggest threat to shipping on PS3 for most of their project, which mirrors my own experience.

I imagine the things they listed were not meant to be a comprehensive list, but a number of examples of what they're using the SPUs for.
 
"... But again, it all requires main memory we did not have as our levels are fairly large compared to other games and our SPUs were in fact pretty loaded with particles, animations, physics, low-level rendering and culling already."

Sounds to me like they were using the SPUs quite heavily and couldn't spare the memory or SPU time to offload more graphics tasks. It seems like they were doing culling on the SPUs anyway.

Backface culling is cheap and part of EDGE, it's not occlusion culling. Also I finished the game twice (a testament to how much I enjoyed it), physics, AI and animation is nothing to write home about (not that they bothered me much mind you).
 
"I'm a strong believer that we should already be at Avatar quality in real-time, but the mass market (not everyone has the highest end cards or CPUs for example) is significantly delaying this next step," observes Tiago Sousa.

Seriously, I've just lost all respect. Either he's an idiot or he has no idea what he's talking about.
 
Status
Not open for further replies.
Back
Top