fos
03-12-2007, 12:28 AM
This morning at 9:00 I went to the multi-core programming talk from AMD. It was a good introduction on how applications are setup for several cores.
The main talk for the day was the "RSX Best Practices" talk at 2:30. EDGE allows Decompression of Data, Blend Shapes, Skinning, Progressive Meshes, Culling (Off-Screen, Backface, Triangles smaller than pixels) and Compression.
I found the progressive mesh stuff first impressive but then they admitted that they had to re-calculate all the normals, binormals and tangents on the fly when they switch LOD levels. They handled characters with 35k in three levels down to 1k polygons. The culling stage is expected to remove 30% of the triangles but as far as I understood these guys only gave a minor improvement. They said that vertex streams with an interleaved set of attributes has given them more bang for the buck.
They said that they also can create stencil shadow volumes but no one wanted to use them.
Additionally there seems to be a new optimization trick that is called local stalls. They put stalls in the command buffer to speed up performance. There seems to be a paper soon available on the website. I would send this around as soon as it is available.
One of the things those guys want to think about in the future is to do all the vertex processing on the SPU, they want to generate then shadow maps on the SPU as well.
A new tool that is named vertex cache optimizer will be available soon. It does what it says and sounds very cool.
GCMReplay can simulate object Z culling on the SPU ... so we can test what it would mean for us to go through the whole implementation process to support culling of objects.
My next talk at 4:00 was called SPU Usage. They showed case studies on how the SPU was used in Motorstorm, Formula One, Resistance and Heavenly Sword. Motorstorm used the SPU for:
- Particle Calculations
- Ground Collision Calculation (?)
- PVS calculation
- Scene Hierarchy
- Suspension control server
- Game vehicle Physics
- VOIP code
Formula One used the SPU Jobs for
- Update Skin
- Animation
- ICE Mesh tool
- SceneGraph
- Audio
They used SPU tasks for
- Rain
- Physics
- Landscape collision
Resistance used the SPU for
- Skeletal Anim
- Physics
- Collision
- Scene
they have a very nice in-game profiler and used two raw SPU's for collision.
Heavenly Sword used the SPU for
- 2000 characters
- Spatial partition
- AI Battalion
- AI Soldier
- Sort for Rendering
http://www.amazon.com/Direct3D-ShaderX-Vertex-Shader-Tricks/dp/1556220413
The main talk for the day was the "RSX Best Practices" talk at 2:30. EDGE allows Decompression of Data, Blend Shapes, Skinning, Progressive Meshes, Culling (Off-Screen, Backface, Triangles smaller than pixels) and Compression.
I found the progressive mesh stuff first impressive but then they admitted that they had to re-calculate all the normals, binormals and tangents on the fly when they switch LOD levels. They handled characters with 35k in three levels down to 1k polygons. The culling stage is expected to remove 30% of the triangles but as far as I understood these guys only gave a minor improvement. They said that vertex streams with an interleaved set of attributes has given them more bang for the buck.
They said that they also can create stencil shadow volumes but no one wanted to use them.
Additionally there seems to be a new optimization trick that is called local stalls. They put stalls in the command buffer to speed up performance. There seems to be a paper soon available on the website. I would send this around as soon as it is available.
One of the things those guys want to think about in the future is to do all the vertex processing on the SPU, they want to generate then shadow maps on the SPU as well.
A new tool that is named vertex cache optimizer will be available soon. It does what it says and sounds very cool.
GCMReplay can simulate object Z culling on the SPU ... so we can test what it would mean for us to go through the whole implementation process to support culling of objects.
My next talk at 4:00 was called SPU Usage. They showed case studies on how the SPU was used in Motorstorm, Formula One, Resistance and Heavenly Sword. Motorstorm used the SPU for:
- Particle Calculations
- Ground Collision Calculation (?)
- PVS calculation
- Scene Hierarchy
- Suspension control server
- Game vehicle Physics
- VOIP code
Formula One used the SPU Jobs for
- Update Skin
- Animation
- ICE Mesh tool
- SceneGraph
- Audio
They used SPU tasks for
- Rain
- Physics
- Landscape collision
Resistance used the SPU for
- Skeletal Anim
- Physics
- Collision
- Scene
they have a very nice in-game profiler and used two raw SPU's for collision.
Heavenly Sword used the SPU for
- 2000 characters
- Spatial partition
- AI Battalion
- AI Soldier
- Sort for Rendering
http://www.amazon.com/Direct3D-ShaderX-Vertex-Shader-Tricks/dp/1556220413