DICE's Frostbite 2

SPU-Based Deferred Shading

Waiting for the DirectX11 one..

Good stuff, still digesting it. Interesting that in slide 13 it looks like they are doing a gbuffer resolve from gddr3 to xdr using rsx before letting the spu's chop through the data, and they discard one of the render targets in the process presumably having packed it's data somewhere into the other targets. I wonder if that's a step taken to help it all fit into local store in their target 64x64 pixel tile size. Presumably on pc you wouldn't have to bother with that step.
 
On the X360 it is very likely, because for a fully deferred renderer you need the following at least:
depth 3 bytes, usually combined with stencil 1 byte
normals 3 bytes
diffuse albedo 3 bytes + specular whatever 1 byte

Theoretically you'd have an extra byte aside the normals but you need to work with 4-byte wide data because of the hardware's layout. So you can usually stuff some other kind of data into the remaining byte, like material identifiers, occlusion and so on.

Anyway you'll need at least 3 full sized buffers, but the 10MB EDRAM can't fit them in full 1280x720.

Trials HD cuts off 20 rows, and fills them with black; and Crysis isn't fully deferred and skips the diffuse albedo channel. Dead Space 2 is fully deferred as I hear and so they're probably using tiling.

Guys this might sound a little stupid but what exactly is tiling? and how it affects the game's performance? thanks in advance. :oops:
 
maybe they haven't figured out how to make it all work on 360 yet? :p

Yeah, or maybe they couldn't get an extra time allotment to cover their 360 method during GDC. Anyway, I am looking forward to it. though I suspect that we will get to see it ruuning on both consoles before siggraph 11, probably around E3.
 
Yeah, or maybe they couldn't get an extra time allotment to cover their 360 method during GDC. Anyway, I am looking forward to it.

Or, if you're going to present at SIGGRAPH, you may want to stretch/space your presentations out -- after-all, your main job may not be to create slides and presentations for conferences.
 
It sounded like they might still be trying different things on Xbox. At any rate they didn't sound concerned about it.
If I have to guess, they are probably doing some of the "SPU" work on CPU/VMX but more coarse grained, and then doing the rest on GPU, maybe a MEMEXPORT shader to do some of the simplification/permutation logic and then pixel shader to do the actual lighting.
 
SPU-Based Deferred Shading

Waiting for the DirectX11 one..

Same here. Based on the slides alone these guys seems to have really put effort into making the best use of available hardware. If they did the same for DX11 we could be in for quite a treat.

@repi: thanks #bf3 community for policing yourself. my 2 hostage slides: "DX11 Rendering in BF3" & "Lighting in BF3" will be released within 1 day.

Can't wait.
 
To be honest, back in the early years of the PS3 architecture discussions I've totally dismissed the idea of doing the actual shading on the SPUs, for reasons like problematic texture access and the very small local memory's limitation on tile size. It just looked like the implementation would be far to low efficiency and work intensive for it to make sense.

It's because the programmer has explicit control over all SPU memory accesses, and the data maps well to Cell's programming model (DMA + LocalStore !). Efficiency should be high, sustained and predictable when these conditions are matched.

There are overhead in the model though (e.g., Copying memory). So they'll need to watch out for memory size and bandwidth in a real game. All these are "just" engine design and run-time. Wondering what their streaming system looks like today.

In the future, also curious to see what the developers can come up with since there is no cast-in-stone pipeline for the SPUs ("Everything" is software). Performance is only one aspect. The flexibility/freedom of CPU cores may enable new use or higher quality output. I think those kinds of innovation may be a bigger win.

EDIT: I suspect tuning may be a b*tch too since there are many moving pieces. ^_^
 
Good stuff, still digesting it. Interesting that in slide 13 it looks like they are doing a gbuffer resolve from gddr3 to xdr using rsx before letting the spu's chop through the data, and they discard one of the render targets in the process presumably having packed it's data somewhere into the other targets. I wonder if that's a step taken to help it all fit into local store in their target 64x64 pixel tile size. Presumably on pc you wouldn't have to bother with that step.

At the presentation they said that they did it this way because rendering directly into system memory was so slow that it justified spending the time on the copy from local memory. I'm guessing they didn't bother transfering the baked lighting output because they're already summing the results of the SPU deferred pass with the results of lights calculated by the GPU, so there was no need to copy it across.

Later on Matt Swoboda was saying during his PhyreEngine talk that they had measured local->system memory transfers for a 1280x720 buffer to be 0.7ms, and he wasn't sure how they were doing it in only 1.3ms. Either way they must have hit a serious performance cliff with 4xMRT in local memory. I've never tried more than 2 simultaneous RT's on PS3, personally.
 
At the presentation they said that they did it this way because rendering directly into system memory was so slow that it justified spending the time on the copy from local memory. I'm guessing they didn't bother transfering the baked lighting output because they're already summing the results of the SPU deferred pass with the results of lights calculated by the GPU, so there was no need to copy it across.

Later on Matt Swoboda was saying during his PhyreEngine talk that they had measured local->system memory transfers for a 1280x720 buffer to be 0.7ms, and he wasn't sure how they were doing it in only 1.3ms. Either way they must have hit a serious performance cliff with 4xMRT in local memory. I've never tried more than 2 simultaneous RT's on PS3, personally.

During Swoboda's presentation, what was this about? If I may ask.

"a new take on MLAA on PS3"

new take huh?
 
To be honest, back in the early years of the PS3 architecture discussions I've totally dismissed the idea of doing the actual shading on the SPUs, for reasons like problematic texture access and the very small local memory's limitation on tile size. It just looked like the implementation would be far to low efficiency and work intensive for it to make sense.

So it's really amazing to see how Dice has still gone all along the way to utilize their processing power; and it's kinda evident now that deferred rendering can remove the texture access problems completely.
And I feel happily vindicated, as I always believed programmability and clever developers would push the envelope. ;) I'll be interested to see how the consoles compare with a contemporary PC from their launch, to see how closed-boxed, tight hardware helps gain efficiencies or not. Let's say an $800 PC build from 2005, 7900GT, next to the PS3 version, what are the differences? That'll be a discussion for a different thread when this game is out though. One for DF I dare say!
 
I'm probably more interested in Battlefield 3 than any other game, not just because it's pretty much the best shooter series around, but because they're doing some crazy looking stuff and I really want to see how it turns out. They make very good slides. There are some things I don't understand, but in general the explanation of the methodology and algorithms is very clear. The translucency slides were great, and it seems like they're going to go crazy with it, which will be cool. There's a lot of stuff in there games, like foliage, that could really benefit. The only thing is they said it can't be used on animated objects, so I'm assuming a waving flag would be a no go? Leaves on trees tend to not bend in games, so I'm assuming that would work. Human faces are out because of facial animation?

Looking at the number of SPU code permutations, it seems like they're doing a huge amount of work on the SPUs, and it says they're doing post-processing effects (I'm assuming depth-of-field etc) on the GPU rather than the SPUs. Most PS3 games have seemed to go the opposite route, offloading post-processing effects onto the SPUs. I guess I'm curious to know what the reasoning was to offload shading to the SPU rather than what's "normally" done by the likes of PS3 exclusives.

Is the DX11 presentation available? Really curious to see what they end of presenting for 360. Has Dice come up with the new de facto engine-model for the PS3? Obviously that's a hypothetical, since it isn't even out yet.
 
Repi promised to publish the remaining presentations today, maybe after work hours?

Also, they apparently have some idea on how to solve translucency on deforming objects...
 
And I feel happily vindicated, as I always believed programmability and clever developers would push the envelope. ;) I'll be interested to see how the consoles compare with a contemporary PC from their launch, to see how closed-boxed, tight hardware helps gain efficiencies or not. Let's say an $800 PC build from 2005, 7900GT, next to the PS3 version, what are the differences? That'll be a discussion for a different thread when this game is out though. One for DF I dare say!

A 7900GT will not run the game. ;)
 
And I feel happily vindicated, as I always believed programmability and clever developers would push the envelope. ;) I'll be interested to see how the consoles compare with a contemporary PC from their launch, to see how closed-boxed, tight hardware helps gain efficiencies or not. Let's say an $800 PC build from 2005, 7900GT, next to the PS3 version, what are the differences? That'll be a discussion for a different thread when this game is out though. One for DF I dare say!

I hope they will continue to think of new solutions. It's also quite cool that they have the same subsystems working on the GPU and CPU to verify their results during development.

Very impressive work DICE has done on the PS3 so far, those SPUs almost sound like some magic bullet to them. I still see no mentioning of rendering buffer though but DICE does have a history of rendering 1280 x 720 on consoles.

Yeah, game development will be one more "level" up. They will need to deal with real life data set.
 
Back
Top