4/6/ :35 AM V ©2004 Microsoft Corporation. All rights reserved.

Slides:



Advertisements
Similar presentations
Introduction to Direct3D 10 Course Porting Game Engines to Direct3D 10: Crysis / CryEngine2 Carsten Wenzel.
Advertisements

DirectX11 Performance Reloaded
4/1/2017 4:16 PM.
COMPUTER GRAPHICS SOFTWARE.
DirectX Graphics: Direct3D 10 and Beyond
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Normal Map Compression with ATI 3Dc™ Jonathan Zarge ATI Research Inc.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Pipeline.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
G30™ A 3D graphics accelerator for mobile devices Petri Nordlund CTO, Bitboys Oy.
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
OS Case Study: The Xbox 360  Instructor: Rob Nash  Readings: See citations in the slides.
Computer Graphics Hardware Acceleration for Embedded Level Systems Brian Murray
Tools for Investigating Graphics System Performance
1 Shader Performance Analysis on a Modern GPU Architecture Victor Moya, Carlos González, Jordi Roca, Agustín Fernández Jordi Roca, Agustín Fernández Department.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
Status – Week 243 Victor Moya. Summary Current status. Current status. Tests. Tests. XBox documentation. XBox documentation. Post Vertex Shader geometry.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Status – Week 277 Victor Moya.
GPU Simulator Victor Moya. Summary Rendering pipeline for 3D graphics. Rendering pipeline for 3D graphics. Graphic Processors. Graphic Processors. GPU.
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.
The programmable pipeline Lecture 10 Slide Courtesy to Dr. Suresh Venkatasubramanian.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Comparison of Next Generation Gaming Architectures Presented By Dela Tsiagbe Presented By Dela Tsiagbe.
You can use 3D graphics to enhance and differentiate your Metro style app.
Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich.
High Performance in Broad Reach Games Chas. Boyd
© Copyright Khronos Group, Page 1 Harnessing the Horsepower of OpenGL ES Hardware Acceleration Rob Simpson, Bitboys Oy.
REAL-TIME VOLUME GRAPHICS Christof Rezk Salama Computer Graphics and Multimedia Group, University of Siegen, Germany Eurographics 2006 Real-Time Volume.
OpenGL 3.0 Texture Arrays Presentation: Olivia Terrell, Dec. 4, 2008.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
Next-Generation Consoles Brenden Schubert & Nathaniel Williams With a Special talk by John F. Rhoads on Video Game Ethics.
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.
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS Textures.
4/23/2017 4:23 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS – PART 2 SPRING 2015 DR. MICHAEL J. REALE.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
The programmable pipeline Lecture 3.
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Xbox MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Processor Structure and Function Chapter8:. CPU Structure  CPU must:  Fetch instructions –Read instruction from memory  Interpret instructions –Instruction.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
Ray Tracing using Programmable Graphics Hardware
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
Advanced D3D10 Shader Authoring Presentation/Presenter Title Slide.
Fast and parallel implementation of Image Processing Algorithm using CUDA Technology On GPU Hardware Neha Patil Badrinath Roysam Department of Electrical.
Computer Graphics Graphics Hardware
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Petri Nordlund Chief Architect Bitboys Oy
Petri Nordlund Chief Architect Bitboys Oy
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
The Small batch (and Other) solutions in Mantle API
Graphics Processing Unit
Computer Graphics Graphics Hardware
RADEON™ 9700 Architecture and 3D Performance
Computer Graphics Introduction to Shaders
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

4/6/2017 11:35 AM V ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Next-Generation Graphics Programming on Xbox 360 Matt Lee Software Design Engineer Game Technology Group Microsoft Corporation ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Prerequisites Basic system architecture Basic Direct3D 4/6/2017 11:35 AM Prerequisites Basic system architecture Caches, Bandwidth, etc. Basic Direct3D Drawing, render targets, render state Vertex and pixel shaders ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Overview Xbox 360 System Architecture 4/6/2017 11:35 AM Overview Xbox 360 System Architecture Xbox 360 Graphics Architecture Details Direct3D on Xbox 360 Xbox 360 graphics APIs Shader development Tools for graphics debugging and optimization ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Xbox 360 512 MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk

The Xbox 360 GPU Custom silicon designed by ATi Technologies Inc. 4/6/2017 11:35 AM The Xbox 360 GPU Custom silicon designed by ATi Technologies Inc. 500 MHz, 338 million transistors, 90nm process Supports vertex and pixel shader version 3.0+ Includes some Xbox 360 extensions ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/6/2017 11:35 AM The Xbox 360 GPU 10 MB embedded DRAM (EDRAM) for extremely high-bandwidth render targets Alpha blending, Z testing, multisample antialiasing are all free (even when combined) Hierarchical Z logic and dedicated memory for early Z/stencil rejection GPU is also the memory hub for the whole system 22.4 GB/sec to/from system memory ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/6/2017 11:35 AM More About the Xbox 360 GPU 48 shader ALUs shared between pixel and vertex shading (unified shaders) Each ALU can co-issue one float4 op and one scalar op each cycle Non-traditional architecture 16 texture samplers Dedicated Branch instruction execution ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/6/2017 11:35 AM More About the Xbox 360 GPU 2x and 4x hardware multi-sample anti-aliasing (MSAA) Hardware tessellator N-patches, triangular patches, and rectangular patches Can render to 4 render targets and a depth/stencil buffer simultaneously ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Work Flow Consumes instructions and data from a command buffer 4/6/2017 11:35 AM GPU: Work Flow Consumes instructions and data from a command buffer Ring buffer in system memory Managed by Direct3D, user configurable size (default 2 MB) Supports indirection for vertex data, index data, shaders, textures, render state, and command buffers Up to 8 simultaneous contexts in-flight at once Changing shaders or render state is inexpensive, since a new context can be started up easily ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Work Flow Threads work on units of 64 vertices or pixels at once 4/6/2017 11:35 AM GPU: Work Flow Threads work on units of 64 vertices or pixels at once Dedicated triangle setup, clipping, etc. Pixels processed in 2x2 quads Back buffers/render targets stored in EDRAM Alpha, Z, stencil test, and MSAA expansion done in EDRAM module EDRAM contents copied to system memory by “resolve” hardware ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Operations Per Clock 4/6/2017 11:35 AM GPU: Operations Per Clock Write 8 pixels or 16 Z-only pixels to EDRAM With MSAA, up to 32 samples or 64 Z-only samples Reject up to 64 pixels that fail Hierarchical Z testing Vertex fetch sixteen 32-bit words from up to two different vertex streams ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Operations Per Clock 4/6/2017 11:35 AM GPU: Operations Per Clock 16 bilinear texture fetches 48 vector and scalar ALU operations Interpolate 16 float4 shader interpolants 32 control flow operations Process one vertex, one triangle Resolve 8 pixels to system memory from EDRAM ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/6/2017 11:35 AM GPU: Hierarchical Z Rough, low-resolution representation of Z/stencil buffer contents Provides early Z/stencil rejection for pixel quads 11 bits of Z and 1 bit of stencil per block ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Hierarchical Z NOT tied to compression 4/6/2017 11:35 AM GPU: Hierarchical Z NOT tied to compression EDRAM BW advantage Separate memory buffer on GPU Enough memory for 1280x720 2x MSAA Provides a big performance boost when drawing complex scenes Draw opaque objects front to back ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Xbox Procedural Synthesis 4/6/2017 11:35 AM GPU: Xbox Procedural Synthesis Dedicated hardware channel between CPU L2 cache and GPU 10.8 GB/sec Useful for dynamic geometry, instancing, particle systems, etc. Callbacks inserted into command buffer spin up XPS threads on CPU during rendering ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Xbox Procedural Synthesis 4/6/2017 11:35 AM GPU: Xbox Procedural Synthesis XPS threads run your supplied code GPU consumes data as CPU generates it Separate, small command buffer in locked L2 cache section ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Hardware Tessellation 4/6/2017 11:35 AM GPU: Hardware Tessellation Dedicated tessellation hardware Occurs before vertex shading Does not compute interpolated vertex positions Parametric values are sent to a special vertex shader designed for tessellation ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Hardware Tessellation 4/6/2017 11:35 AM GPU: Hardware Tessellation 3 modes of tessellation Discrete: integer parameter, triangles only Continuous: float parameter, new vertices are shifted to their final position Per-edge: Special index buffer used to provide per-edge factors, used for patches only, cannot support traditional index data as well ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Discrete Tessellation Sample Triangle with tessellation level 4

Continuous Tessellation Sample Quad with tessellation levels 3, 4, 5 One thing that is a bit unusual about continuous tessellation is that the number of vertices per-edge is always an odd number. Notice how the middle quad has 5 vertices per edge. It would be nice to be able to demo this in real-time. ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Per-Edge Tessellation Sample Quad-patch with per-edge tessellation factors of 1, 3, 5, and 7

GPU: Textures 16 bilinear texture samples per clock 64bpp runs at half rate, 128bpp at quarter rate Trilinear at half rate Unlimited dependent texture fetching DXT decompression has 32 bit precision Better than Xbox (16-bit precision) ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

GPU: Textures Texture arrays – generalized version of cube maps 4/6/2017 11:35 AM GPU: Textures Texture arrays – generalized version of cube maps Up to 64 surfaces within a texture, optional MIPmaps for each surface Surface is indexed with a [0..1] z coordinate in a 3D texture fetch Mip tail packing All MIPs smaller than 32 texels on a side are packed into one memory page ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/6/2017 11:35 AM GPU: Resolve Copies surface data from EDRAM to a texture in system memory Required for render-to-texture and presentation to the screen Can perform MSAA sample averaging or resolve individual samples Can perform format conversions and biasing ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D 9+ on Xbox 360 Similar API to PC Direct3D 9.0 4/6/2017 11:35 AM Direct3D 9+ on Xbox 360 Similar API to PC Direct3D 9.0 Optimized for Xbox 360 hardware No abstraction layers or drivers—it’s direct to the metal Exposes all Xbox 360 custom hardware features New state enums New APIs for finer-grained control and completely new features ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D 9+ on Xbox 360 Communicates with GPU via a command buffer Ring buffer in system memory Direct Command Buffer Playback support

Direct3D: Drawing Points, lines, triangles, quads, rects, polygons 4/6/2017 11:35 AM Direct3D: Drawing Points, lines, triangles, quads, rects, polygons Stripped lines, triangles, quads, polygons Configurable reset index to reset strips within an index buffer DrawPrimitive, DrawIndexedPrimitive DrawPrimitiveUP, DrawIndexedPrimitiveUP No vertex buffers or index buffers required ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: Drawing BeginVertices / EndVertices SetStreamSourceFrequency Direct allocation from the command buffer Better than DrawPrimitiveUP SetStreamSourceFrequency Not directly supported on Xbox 360 Can be done with more flexibility in vertex shader RunCommandBuffer Direct support for modifying and playing command buffers

Direct3D: State Render state and sampler state New states added for Xbox 360 Half-pixel offset High-precision blending Primitive reset index Unsupported states ignored by Direct3D ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: State Lazy state State API extensions for Xbox 360 4/6/2017 11:35 AM Direct3D: State Lazy state Direct3D batches up state in blocks that are optimized for submission to the GPU Uses special CPU instructions for very low CPU overhead State API extensions for Xbox 360 SetBlendState Individual blend control for each render target ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: Render Targets 4/6/2017 11:35 AM Direct3D: Render Targets New format for high dynamic range 2:10:10:10 float 7 bits mantissa, 3 bits exponent for each of R, G, B No matching texture format Special mode which allows for 10 bits of alpha precision on blends Optional sRGB gamma correction (2.2) on 8:8:8:8 fixed point ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: New Texture Formats 4/6/2017 11:35 AM Direct3D: New Texture Formats DXN 2-component format with 8 bits of precision per component Great for normal maps CTX1 Also good for normal maps Less bits per pixel than DXN ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: New Texture Formats 4/6/2017 11:35 AM Direct3D: New Texture Formats DXT3A, DXT5A Single component textures made from a DXT3/DXT5 alpha block 4 bits of precision ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: Command Buffer 4/6/2017 11:35 AM Direct3D: Command Buffer Code Execution CPU Write Pointer Rendering Draw Draw Draw GPU Read Pointer Draw If the CPU gets too far ahead of the GPU, there is a stall If the GPU catches up to the CPU, the GPU sits idle Ring buffer that allows the CPU to safely send commands to the GPU Buffer is filled by CPU, and the GPU consumes the data ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: Predicated Tiling 4/6/2017 11:35 AM Direct3D: Predicated Tiling EDRAM is not large enough for 720p rendering with MSAA or multiple render targets Solution: Predicated tiling Divide the surface into a handful of “tiles” Direct3D replays an accumulated command buffer to each tile Direct3D stitches together a final image by resolving each tile pass to a rect in a texture in system memory ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: Predicated Tiling 4/6/2017 11:35 AM Direct3D: Predicated Tiling Optimization Uses GPU hardware predication and screen-space extents capture Only renders primitives on the tiles where they appear Cuts down significantly on duplicate vertex processing ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Direct3D: Predicated Tiling What does it cost? Increased vertex processing cost, for primitives that span more than one tile No pixel processing increase Required for 720p and MSAA

XGraphics Graphics API for direct access to Direct3D resources and low-level texture data manipulation Create/update resources without the D3D device XGSetTextureHeader, XGSetVertexBufferHeader, XGSetIndexBufferHeader, etc Useful for threaded loading code

XGraphics Direct management of resource memory Use your own allocators, etc. Texture tiling functions Endian swapping functions Win32 library is useful for tool pipelines and offline resource packing

Shaders Two options for writing shaders Recommendation: Use HLSL HLSL (with Xbox 360 extensions) GPU microcode (specific to the Xbox 360 GPU, similar to assembly but direct to hardware) Recommendation: Use HLSL Easy to write and maintain Replace individual shaders with microcode if performance analysis warrants it

High-Level Shading Language (HLSL) Xbox 360 extensions Texture sampler modes (offsets, filtering override, etc.) Memory export Predicated tiling screen space offset Vertex fetching/index manipulation Tesselation

Shaders: GPU Microcode Shader language that maps 1:1 with the hardware Similar to assembly shaders in appearance Somewhat esoteric, but extremely flexible Plan for HLSL, write microcode for performance gains where needed

Shaders: Branching Static branching Dynamic branching Branching based on bool or int constants Example: Perform texture sample if constant b15 is TRUE Dynamic branching Branching based on a computed or interpolated value Example: Compute dot product, light pixel if result > 0

Shaders: Branching Dynamic branching can be as fast as static branching if all vertices/pixels in a 64-unit vector take the same branch

Shaders: Vertex Declarations and Fetches Xbox 360 GPU does not natively support vertex declarations or streams Shaders are patched at run time to match the current vertex declaration Vertex fetch instructions used to load vertex data into the GPU

Shaders: Vertex Declarations and Fetches Shader patching code caches the patched code using a shader-decl pointer pair Try not to create many identical vertex declarations More GPU Friendly shaders are added as an extension but are not as flexible

PIX The ultimate performance and graphics debugging tool Incorporates several modules Performance monitor CPU performance analysis Command buffer capture, playback, and analysis Shader and mesh debuggers

PIX Hardware accelerated GPU has hundreds of performance counters Development kit has special hardware for PIX

PIX: Performance Monitor Scrolling graph display Configurable graphs CPU, GPU, memory, storage stats Best place to accurately gauge frame rate/frame time Runs continuously while PIX is open Works with any application running on the development kit

PIX: CPU Timeline Shows the CPU usage of graphics calls Also shows the CPU usage of your title’s subsystems Use PIXBeginNamedEvent / PIXEndNamedEvent APIs to label your subsystems by name and color

PIX: GPU Timeline Shows the execution of each graphics command on the GPU Timing and statistics Full GPU and Direct3D state All input and output resources (textures, surfaces, shaders, etc.) Event breakdown Render target views Mesh debugger

PIX: Shader debuggers Vertex shader debugger Pixel shader debugger Click on a vertex in the mesh debugger HLSL And Microcode Pixel shader debugger Right-click on a pixel in a render target Select the right draw call that influenced that pixel HLSL and Microcode

Conclusion Direct3D customized and optimized for the hardware New APIs to take advantage of custom features Direct to the metal, no drivers or HAL

Conclusion Extremely powerful graphics hardware Unified shaders Shader model 3.0 plus extensions for Xbox 360 Fast EDRAM provides a huge amount of dedicated frame buffer bandwidth Dedicated hardware for tesselation, procedural geometry, and multi-sample anti-aliasing

Conclusion High performance shader development Brand new HLSL compiler for Xbox 360 GPU microcode to expose the hardware’s abilities FXLite for fast effects

Conclusion Best performance tools in the industry PIX is your best friend and your secret weapon Hardware-accelerated Exposes every bit of performance info

Resources GDC 2006 Presentations DirectX Developer Center 4/6/2017 11:35 AM Resources GDC 2006 Presentations http://msdn.com/directx/presentations DirectX Developer Center http://msdn.com/directx XNA Developer Center http://msdn.com/xna XNA, DirectX, XACT Forums http://msdn.com/directx/forums Email addresses directx@microsoft.com (DirectX & Windows development) xna@microsoft.com (XNA Feedback) ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

© 2006 Microsoft Corporation. All rights reserved. 4/6/2017 11:35 AM © 2006 Microsoft Corporation. All rights reserved. Microsoft, DirectX, Xbox 360, the Xbox logo, and XNA are either registered trademarks or trademarks of Microsoft Corporation in the United Sates and / or other countries. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4/6/2017 11:35 AM V ©2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.