A Real-Time Procedural Shading System for Programmable Graphics Hardware Kekoa Proudfoot William R. Mark Svetoslav Tzvetkov Pat Hanrahan.

Slides:



Advertisements
Similar presentations
Is There a Real Difference between DSPs and GPUs?
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
CPU Review and Programming Models CT101 – Computing Systems.
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
CS-378: Game Technology Lecture #9: More Mapping Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Introduction to Advanced Topics Chapter 1 Mooly Sagiv Schrierber
Reducing Shading on GPUs Using Quad-Fragment Merging JAEHYUN CHO
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
Fall 2001CS 4471 CS 447: Fall 2001 Chapter 1: Computer Abstraction and Technology (Introduction to the course)
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
A Crash Course on Programmable Graphics Hardware Li-Yi Wei 2005 at Tsinghua University, Beijing.
RISC By Don Nichols. Contents Introduction History Problems with CISC RISC Philosophy Early RISC Modern RISC.
Microprocessors Introduction to ia64 Architecture Jan 31st, 2002 General Principles.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
Compilation, Architectural Support, and Evaluation of SIMD Graphics Pipeline Programs on a General-Purpose CPU Mauricio Breternitz Jr, Herbert Hum, Sanjeev.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Activity 1 - WBs 5 mins Go online and spend a moment trying to find out the difference between: HIGH LEVEL programming languages and LOW LEVEL programming.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
CHAPTER 4 Window Creation and Control © 2008 Cengage Learning EMEA.
Enhancing GPU for Scientific Computing Some thoughts.
Programmable Pipelines. Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
May 8, 2007Farid Harhad and Alaa Shams CS7080 Over View of the GPU Architecture CS7080 Class Project Supervised by: Dr. Elias Khalaf By: Farid Harhad &
Basics and Architectures
RISC:Reduced Instruction Set Computing. Overview What is RISC architecture? How did RISC evolve? How does RISC use instruction pipelining? How does RISC.
1 The Performance Potential for Single Application Heterogeneous Systems Henry Wong* and Tor M. Aamodt § *University of Toronto § University of British.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
GPU Shading and Rendering Shading Technology 8:30 Introduction (:30–Olano) 9:00 Direct3D 10 (:45–Blythe) Languages, Systems and Demos 10:30 RapidMind.
Programmable Pipelines. 2 Objectives Introduce programmable pipelines ­Vertex shaders ­Fragment shaders Introduce shading languages ­Needed to describe.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
Computer Programming I An Introduction to the art and science of programming with C++
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Pirouz Bazargan SabetDecember 2003 Outline Architecture of a RISC Processor Implementation.
GRAPHICS PIPELINE & SHADERS SET09115 Intro to Graphics Programming.
Programmable Pipelines Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
Ted Pedersen – CS 3011 – Chapter 10 1 A brief history of computer architectures CISC – complex instruction set computing –Intel x86, VAX –Evolved from.
M. Mateen Yaqoob The University of Lahore Spring 2014.
CSE 381 – Advanced Game Programming GLSL. Rendering Revisited.
A SEMINAR ON 1 CONTENT 2  The Stream Programming Model  The Stream Programming Model-II  Advantage of Stream Processor  Imagine’s.
Introduction to OOP CPS235: Introduction.
Ray Tracing using Programmable Graphics Hardware
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS The GPU.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
GLSL Review Monday, Nov OpenGL pipeline Command Stream Vertex Processing Geometry processing Rasterization Fragment processing Fragment Ops/Blending.
COMP 175 | COMPUTER GRAPHICS Remco Chang1/XX13 – GLSL Lecture 13: OpenGL Shading Language (GLSL) COMP 175: Computer Graphics April 12, 2016.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
A LECTURE NOTE. Introduction to Programming languages.
Visit for more Learning Resources
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
CSCI-235 Micro-Computer Applications
Introduction to Advanced Topics Chapter 1 Text Book: Advanced compiler Design implementation By Steven S Muchnick (Elsevier)
Programmable Pipelines
A Crash Course on Programmable Graphics Hardware
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
MIPS Assembly.
Graphics Processing Unit
Computer Graphics Introduction to Shaders
Graphics Processing Unit
Lecture 4: Instruction Set Design/Pipelining
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

A Real-Time Procedural Shading System for Programmable Graphics Hardware Kekoa Proudfoot William R. Mark Svetoslav Tzvetkov Pat Hanrahan

Introduction n Graphics processors are becoming programmable n Programmability makes it possible to make real-time graphics more lifelike n But somebody has to do the programming

Programmable graphics hardware n Problem: programming graphics hardware is difficult –Low-level interfaces –Different manufacturers produce hardware with different interfaces and functionality n Sounds familiar: microprocessors –Assembly language interface –Intel processor very different from Alpha

Programmable graphics hardware n Programming in assembly is difficult –Have to worry about register allocation, instruction scheduling, etc. n With normal processors, we program in higher-level languages, and compile down to assembly n Can we apply this idea to programmable graphics hardware?

Shading languages n High level description: programmer describes how objects should be drawn, instead of how to draw them n Kind of like C: you still need to know what you’re doing, but you don’t need to worry about low-level details n Makes programming easier, and makes programs portable

Compiling the shading language n Traditional compiler structure n Programmable pipeline program is an intermediate language shading language compiler front end programmable pipeline program retargetable compiler back end hardware-specific code

Front end analysis - computation frequencies n Primitives (cubes, etc) get converted to vertices (triangles) n Vertices get converted to fragments (pixels) n Computation can occur at any of these stages n Use type inference to perform computation as early as possible constantprimitive group vertexfragment

Compiler back end n Modular structure –To support new hardware, make a new module –One module per computation frequency –Modules can be interchanged n Arbitrarily complex computations can be done –Render in multiple passes if necessary –Use the CPU if all else fails

Back end optimizations n Group parallel scalar operations into vector operations n Copy propagation n Collapse MUL and ADD to MAD (multiply-and-add) n Use negate-on-read when possible

Conclusion n Shaders provide an abstraction barrier between the programmer and the hardware n But, the programmer no longer has direct control over the performance of the program

Discussion n The goal is to produce lifelike real-time graphics. Can we afford an extra layer of abstraction?