You are on page 1of 24

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 1

Looking Back, Looking Forward, Why and


How is Interactive Rendering Changing
Mike Houston
AMD
Welcome to
Beyond Programmable Shading!

Beyond Programmable Shading Course, ACM SIGGRAPH 2010 3


A quick history 1960’s to 2000s
Good reference: http://hem.passagen.se/des/hocg/hocg_1960.htm
RayTracing, Win 3.0 wGUI,
ISutherland, Gouraud,
Whitted, 1980 MS, 1990
Sketchpad, 1971
TRON, Disney OpenGL 1.0, SGI, 1991
1961
S Russel, Pong, 3I, MAGI, NYIT, Toy Story,
Spacewars, Atari, 1972 1980 Pixar, 1992
1961 “Westworld” REYES, Reality Engine,
IBM2250, PDG, 1973 Lucas, 1981 SGI, 1993
1965 SGI, Playstation,
Siggraph
J. Clark, 1982 Sony, 1995
Odyssey, ACM, 1973
Magnavox, Nintendo 64,
Z, Texture, Wavefront,
1966-8 N, 1996
Catmull, 1974 1984
U Utah, Radiosity, Quake,
1968 NYIT, 1974 Cornell, 1984 ID, 1996
Hidden surface 1st MAC wGUI, Voodoo3D,
removal, Apple II, 3Dfx, 1997
Apple, 1984
UU, 1969 Apple, 1977
ATI, 1985 TNT2/
Ikonas, GeF256
E&S, 1968
1978 Pixar, NV, 1999
Intel, 1968 Lucas, 1986 ArtX, 1997
Lucas CGD,
1979 Renderman,
AMD, 1969 Pixar, 1988

7/29/2010 1960’s 1970’s 1980’s


Beyond Programmable Shading Course, ACM SIGGRAPH 2010
1990’s 4
Reference: http://hem.passagen.se/des/hocg/hocg_1960.htm
A quick history since 2000
ArtX1, R4xx ATI, R6xx, R7xx,
1st integrated TL, 2004 ATI, 2006 AMD, 2008
2000 R5xx ATI, R670/x35, G2xx,
ArtX acquired NV4x 2005 G8x, AMD, 2007 NV, 2008
ATI, 2000 NV, 2004 NV, 2006
Crysis-WH,
NV acquires CUDA, Crytek, 2008
DOOM3,
3dfx, 2000 NV, 2007
ID, 2004 DX11/Win7
VIA acquires Vista/DX10,
Half-Life2, MS, 2006 MS, 2009
S3, 2000
Valve, 2004
Gamecube Wii, OpenGL 3.0,
N, 2001 Xbox 360, N, 2006 Khronos, 2008
Xbox MS, 2005
PS3, OpenCL 1.0,
MS, 2001 X3/600, 1st PCIe
Sony, 2006 Khronos, 2008
ATI, 2004
DX9
SLI/Xfire ATI acquired Evergreen,
MS, 2002
ATI/NV, 2005 AMD, 2006 Larrabee AMD, 2009
R300 Alias sold announcement
ATI, 2002 SGI, 2004 DX 10.1, Intel, 2008
LoftR/2Towers, MS, 2007
SGI bankrupcy SGI,
WETA, 2002
protection, 2005 Purchased, 2009

2000-02
7/29/2010 2003-5 2006-7
Beyond Programmable Shading Course, ACM SIGGRAPH 2010 2008-9 5
Reference: http://hem.passagen.se/des/hocg/hocg_1960.htm
Interactive
rendering techniques
are created using an inseparable mix of
data- and task-parallel algorithms
and graphics pipelines
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 6
How do users
write new interactive 3D
rendering algorithms?

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 7


Fixed Function Pipelines (DX7)
• Writing new rendering algorithms means
– Tricks with multitexture, stencil buffer, depth buffer, blending …

• Examples
– Stencil shadow volumes
– Hidden line removal
– …

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 8


Programmable Shaders (DX8-10)
• Writing new rendering algorithms means
– Tricks with stencil buffer, depth buffer, blending …
– Plus: Writing shaders

• Examples
– User-defined materials
– User-defined lights
– User-defined data structures (built in texture memory)

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 9


Software Graphics: Part I (DX11)
• Writing new rendering algorithms means
– Tricks with stencil buffer, depth buffer, blending …
– Plus: Writing shaders
– Plus: Writing data- and task-parallel algorithms
• Analyze results of rendering pipeline
• Synthesize data structures

• Examples
– Dynamic summed area table
– Dynamic quadtree adaptive shadow map
– Dynamic histogram-analysis shadow map
– Dynamic ambient occlusion
– …
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 10
“Fast Summed-Area Table Generation and its Applications,”
Hensley et al., Eurographics 2005

“Dynamic Ambient Occlusion and Indirect


Lighting,” Bunnell, GPU Gems II, 2005

“Real-Time Approximate Sorting for Self


Shadowing
and Transparency in Hair Rendering,” “Resolution Matched Shadow Maps,”
Sintorn et al., I3D 2008 Lefohn et al., ACM Transactions on Graphics 2007
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 11
Software Graphics: Part II (DX11+)
• Writing new rendering algorithms means
– Tricks with stencil buffer, depth buffer, blending …
– Plus: Writing shaders
– Plus: Writing data- and task-parallel algorithms
• Analyze results of rendering pipeline
• Synthesize data structures
– Plus: Creating new and extended rendering pipelines

• Examples
– Micropolygon rendering
– Ray tracing pipelines
– …
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 12
OptiX, NVIDIA “RenderAnts: Interactive Reyes Rendering on
2008 GPUs,”
Zhou et al., ACM SIGGRAPH Asia 2009

“FreePipe: a Programmable Parallel Rendering


“Hardware-Accelerated Global Illumination
Architecture
by Image Space Photon Mapping,”
for Efficient Multi-Fragment Effects,”
McGuire and Luebke, High Performance Graphics
Liu et al., ACM SIGGRAPH Symposium on Interactive
2009
3D Graphics and Games 2010
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 13
“Render to Data Structures”
• DX11 PixelShader 5
– Atomics to global memory
– Gather/scatter to memory (“unordered access views”

• Order independent transparency


– Capture all rendered fragments
• Render directly to grid-of-lists data structure instead of framebuffer
• No framebuffer bound while rendering 
• Increment global counter to get unique address for fragment
• Scatter {depth, color,prevFrag} to UAV shared by all pixels
• Result is grid of linked lists
– Sort and blend lists for final image (pixel shader or compute shader)
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 14
Order Independent Transparency

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 15


There is no single graphics pipeline
• There is no single workload to optimize

• Moving forward, interactive rendering is an


inseparable mix of
– Task- and data-parallel algorithms
– Standard, extended and custom graphics pipelines

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 16


But Some Food For Thought…

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 17


The Wheel of Reincarnation
Gradually the processor became more complex.... Finally the display
processor came to resemble a full-fledged computer with some special
graphics features. And then a strange thing happened. We felt
compelled to add to the processor a second, subsidiary processor,
which, itself, began to grow in complexity. It was then that we
discovered a disturbing truth. Designing a display processor can
become a never-ending cyclical process. In fact, we found the process
so frustrating that we have come to call it the "wheel of reincarnation.”

- Myer and Sutherland “On The Design of Display Processors”,


Communications of the ACM, 1968

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 18


Will There Be Another Turn of The
Wheel of Reincarnation?
• Is “the rise of SW graphics” a temporary (5-10) year window as we
go around the wheel of reincarnation or has the wheel stopped
turning?

• If it has stopped turning, why?

• If it hasn’t stopped turning, what will be the next fixed-function


hardware?

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 19


Conclusions
• Software + hardware graphics is here today (beginning “for real” in
DX11)
– Graphics programming is no longer simply a single pre-defined pipeline
– Research is ablaze with software rendering research on GPUs and CPUs

• Future real-time rendering programming will consist of


– A pre-defined (Direct3D/OpenGL) rendering pipeline
– User-defined software pipelines
– User-defined data- and task-parallel code tightly coupled to graphics pipelines

• Is the wheel of reincarnation still turning?

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 20


Beyond Programmable Shading I
10:15–10:45 - Aaron Lefohn, Intel
9:00–9:20 - Mike Houston, AMD Parallel Programming for Real-Time Graphics
Looking Back, Looking Forward, Why and How
is Interactive Rendering Changing 10:45–11:15 - Chas Boyd, Microsoft
DirectCompute Use in Real-Time Rendering
9:20–9:45 - Johan Andersson, DICE Products
Five Major Challenges in Interactive Rendering
11:15–11:45 - David Luebke, NVIDIA Research
9:45–10:15 - Kayvon Fatahalian, Stanford Surveying Real-Time Beyond Programmable
Running Code at a Teraflop: How a GPU Shading Rendering Algorithms
Shader Core Works
11:45–12:15 - Johan Andersson, DICE
Bending the Graphics Pipeline
7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 21
Beyond Programmable Shading II
2:00–2:05 - Aaron Lefohn, Intel 3:30–3:50 - Andrew Lauritzen, Intel
Welcome and Re-Introduction Deferred Rendering for Current and Future Rendering
Pipelines
2:05–2:35 - Jonathan Ragan-Kelley, MIT
Keeping Many Cores Busy: Scheduling the Graphics 3:50–4:15 - Luca Fascione, WETA
Pipeline Jacopo Pantaleoni, NVIDIA Research
PantaRay: A Case Study in GPU Ray-Tracing for
2:35–3:10 - Kayvon Fatahalian, Stanford Movies
Evolving the Direct3D Pipeline for Real-Time
Micropolygon Rendering 4:15–4:30 - Mike Houston, AMD
Wrapup: What's Next for Interactive Rendering
3:10–3:30 - Jonathan Ragan-Kelley, MIT Research?
Decoupled Sampling for Real-Time Graphics Pipelines

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 22


Beyond Programmable Shading II

4:30–5:15 Panelists:
Steve Molnar, NVIDIA
Panel: What Role Will Fixed-Function David Blythe, Intel
Hardware Play in Future Graphics Mike Houston, AMD
Architectures? Johan Andersson, DICE
Kayvon Fatahalian, Stanford
Moderator: Kurt Akeley
Microsoft Research

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 23


Course webpage and slides:
http://bps10.idav.ucdavis.edu

7/29/2010 Beyond Programmable Shading Course, ACM SIGGRAPH 2010 24