Monday, November 16, 2009

AMD DX11 interview with yours truly


AMD did an interview with me about our work with Frostbite 2 and DirectX 11 which is now available online on the AMD game website.

The interview became longer than we expected, so the full interview in an easier to read PDF format is also available here (recommended version).

AMD was also nice enough to put up a small Frostbite info page, nothing too fancy but good to have.

Wednesday, November 11, 2009

"Parallel Futures of a Game Engine"

I held one of the keynotes at the Intel Dynamic Execution Environment Symposium today (what a lovely concise conference name!). It's an internal Intel conference but as I'm an external speaker, I'm able to make my slides public.

I called my talk "Parallel Futures of a Game Engine":

Game engines have long been in the forefront of taking advantage of the ever increasing parallel compute power of both CPUs and GPUs. This talk is about how the parallel compute is utilized in practice on multiple platforms today in the Frostbite game engine and how we think the parallel programming models, hardware and software in the industry should look like in the next 5 years to help us make the best games possible.


It was a good and healthy process, while preparing this talk, to gather up both my own and our collective thoughts and experiences that we've had over the last few years. In order to try to build up and present a reasonably coherent vision and idea, which I think I succeeded with.

The talk is a bit of collection of some old material together with some new thoughts and conclusions about parallel programming models.

If you have any comments, ideas or further thoughts I would love to hear them!
Add a comment here, send me a mail or contact me on twitter (@repi)


Friday, August 14, 2009

Siggraph'09 - Parallel Graphics in Frostbite

This slides for my Siggraph'09 talk "Parallel Graphics in Frostbite - Current & Future" can be found together with the rest of our Beyond Programmable Shading course at this permanent course site. Or embedded below:



Had a lot of material for this presentation that I wanted to talk about, but only 35 minutes to do it on, so crammed in a lot of text within the slides and talked it through in quite a quick pace. If anyone has any questions about the material I covered, please leave a comment or send me an email!


One request that I've gotten from a bunch of people already is to see a higher resolution version of our job graph picture, it is such a big graph that it isn't really possible to what the jobs are and do in a single fullscreen view. So I've uploaded the full 5400x5200 png image now, but understand that it might still not be very obvious of what the different jobs do or why the dependencies are setup the way they are as this is just an dot graph dump straight out of the engine (rendered using GraphViz).
This specific job graph picture is also a bit old and a lot of jobs have rather weird non-ideal dependency structures which is something we are working on to improve.

Here is the full resolution job graph picture:


Hexagons = SPU-jobs.
Rounded boxes = PPU-jobs.
Dotted circles = group jobs that don't execute anything, only synchronize a group of jobs.


Oh and btw, this slide is still valid (for now):


Monday, July 27, 2009

Tweeting

I infrequently post on this blog nowadays, except for the occasional talk/presentation that I do.

However, I do quite frequently ramble semi-random musings on Twitter which can be found on twitter.com/repi.

Currently working on the slides for a talk in the Beyond Programmable Shading course at Siggraph'09 in New Orleans about parallel graphics (what an anti-oxymoron!) and some new experimental compute-shader-based rendering techniques in Frostbite.
The slides should be up online together with the rest of the course material on the day of the course (6 Aug, Thursday) and I'll upload them here as well, just might be followed up with some interesting discussions.

I will also participate in a panel in the end of the Beyond Programmable Shading course lead by Kurt Akeley, should be great fun!

Friday, April 10, 2009

GDC'09: Your Game Needs Direct3D 11, So Get Started Now!

As I mentioned, I was invited by AMD to their GDC'09 talk Your Game Needs Direct3D 11, So Get Started Now! to share some of our thoughts, goals & details about Direct3D 11 and our port of Frostbite to D3D11.

This was all quite very last minute and I wrote my slides while at GDC just the night before the talk :) But think it went well and it was fun to present together with AMD again and on a very current topic. A lot of game developers are planning to support DX11 (in some cases going directly from DX9 to DX11, which makes sense), but few have started working on it yet so would be great if our talk was of any help.

AMD should have the slides up soon on their website together with their other GDC presentations. In the meantime, here is the slides for this talk embedded.

Big thanks to Bill Bilodeau for inviting me to his talk!



Update: The rest of the AMD slides from GDc'09 are now available here

Tuesday, March 31, 2009

GDC'09: Shadows & Decals - D3D10 techniques from Frostbite

Daniel's and mine GDC'09 presentation titled Shadows & Decals - D3D10 techniques from Frostbite that was in the Advanced Visual Effects with Direct3D for PC full day tutorial is now online! (pdf)

The rest of the tutorial slides can be found here

I talked about our shadowmapping technique which I creatively call Single-pass Stable Cascaded Bounding Box Shadow Maps (SSCBBSM?). It uses a combination of bounding box slice selection, geometry shader & instancing rendering to maximize shadowmap resolution usage and render with as little CPU overhead as possible.

Daniel talked about Decal Generation using the Geometry Shader and Stream Out which is a technique to project and generate decals directly on the GPU to avoid having to duplicate mesh vertex & index buffers into system memory or have to do the vertex & triangle projection on the CPU. It is a pretty cool usage of the GS and something we think will enable more intricate geometry processing than just standard decals in the future.



I also did a list minute presentation in the AMD talk Your Game Needs Direct3D 11, So Get Started Now! about our experiences, motivation and goals of porting & supporting Direct3D 11 in Frostbite. Slides should be up soon!

Thursday, January 15, 2009

The parallelism shift and C++'s memory model

Johan Torp (who now works at DICE) wrote this great master thesis (pdf) about programming for parallelism and the C++/C++0x memory model.

It is a great and exhaustive read of the topic at 134 pages. Recommended for programmers or researchers that are fully serious about parallelism and/or interested in the changes & improvements C++0x brings to the field.

Abstract:

The first part of the thesis is an overview of the paradigmatic shift to parallelism that is currently taking place. It explains why processors need to become parallel, how they might function and which types of parallelism there are. Given that information, it explains why threads and locks is not a suitable programming model and how threading is being improved and used to extract parallel performance. It also covers the problems that await new parallel programming models and how they might work. The final chapter surveys the landscape of existing parallel software and hardware projects and relates them to the overview. The overview is intended for programmers and architects of desktop and embedded systems.

The second part explains how to use C++'s upcoming memory model and atomic API. It also relates the memory model to classical de nitions of distributed computing in an attempt to bridge the gap in terminology between the research literature and C++. An implementation of hazard pointers and a lock-free stack and queue are given as example C++0x code. This part is aimed at expert C++ developers and the research community.

Wednesday, January 14, 2009

Conference slides

Found the neat site slideshare.net which can freely host & embed presentations (up to 100mb per presentation).

I've uploaded a few of the (public) external presentations that I've done the last couple of years. Planning a new talk for GDC this year (focused on DX10/11 rendering) and hopefully another one for the Siggraph real-time rendering course as well, should be interesting as always!





Don't miss the course notes for Siggraph course.