DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms...

37
DirectX Graphics: DirectX Graphics: Direct3D 10 and Direct3D 10 and Beyond Beyond Sam Z. Glassenberg Sam Z. Glassenberg Lead Program Manager Lead Program Manager Graphics Platforms Unit Graphics Platforms Unit Microsoft Corporation Microsoft Corporation

Transcript of DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms...

Page 1: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

DirectX Graphics: DirectX Graphics: Direct3D 10 and Beyond Direct3D 10 and Beyond

Sam Z. GlassenbergSam Z. GlassenbergLead Program ManagerLead Program ManagerGraphics Platforms UnitGraphics Platforms UnitMicrosoft CorporationMicrosoft Corporation

Page 2: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Graphics Core In Windows VistaGraphics Core In Windows Vista

DXG Kernel Kernel-ModeDriver

User ModeUser Mode

Kernel ModeKernel Mode

IHV-writtenIHV-writtencodecode

Microsoft-Microsoft-written codewritten code

OpenGLICD

User-ModeDriver

LegacyD3D APIs

Direct3D10D3D9 OpenGL

MIL

Common pipeline (DDI)

D3D9Ex

DXVA

MediaFoundation

Win32 Kernel

GDI DXGI

PIX

WPFDWM

Page 3: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Graphics Core In Windows VistaGraphics Core In Windows Vista

Direct3D10

Page 4: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

OutlineOutlineThe next few yearsThe next few years

Direct3D 10 and Direct3D “10.1”Direct3D 10 and Direct3D “10.1”Design ImperativesDesign Imperatives

Features and CapabilitiesFeatures and Capabilities

ApplicationsApplications

Page 5: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

The Situation TodayThe Situation TodayNo single graphics hardware target No single graphics hardware target

CPU-bound games and applicationsCPU-bound games and applicationsBandwidth and CPU cycles are the Bandwidth and CPU cycles are the bottleneck in multiple areas (physics, AI)bottleneck in multiple areas (physics, AI)

Large amount of CPU resources spent Large amount of CPU resources spent directing the GPUdirecting the GPU

GPUGPU

CPUCPU

Page 6: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

The Situation TodayThe Situation TodayNo single graphics hardware target No single graphics hardware target

CPU-bound games and applicationsCPU-bound games and applicationsBandwidth and CPU cycles are the Bandwidth and CPU cycles are the bottleneck in multiple areas (physics, AI)bottleneck in multiple areas (physics, AI)

Large amount of CPU resources spent Large amount of CPU resources spent directing the GPUdirecting the GPU

GPU overly-specializedGPU overly-specialized

Page 7: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10Direct3D 10Unleashing the power of the GPUUnleashing the power of the GPU

ConsistencyConsistency – guarantee a common – guarantee a common feature-set with feature-set with strictstrict requirements requirements

PerformancePerformance – – Render Render MOREMORE

objects, materials, clutter, vegetation, shadowsobjects, materials, clutter, vegetation, shadows

with with LESSLESS

CPU cycles, stalls, and bandwidth costCPU cycles, stalls, and bandwidth cost

Visual EffectsVisual Effects – unprecedented graphics – unprecedented graphics

CapabilityCapability – empower the GPU to handle – empower the GPU to handle a new series of applications a new series of applications

Page 8: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10 Direct3D 10 Rebuilt from the ground-upRebuilt from the ground-up

Direct3D 10 changes the way applications Direct3D 10 changes the way applications think about…think about…

Material managementMaterial managementGPU State, constants, shaders, …GPU State, constants, shaders, …

CPU/GPU load-balancingCPU/GPU load-balancingVastly reduced API/driver overheadVastly reduced API/driver overhead

More robust GPU capabilityMore robust GPU capability

CPU-like precision and behavior requirementsCPU-like precision and behavior requirements

Page 9: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10 ApplicationsDirect3D 10 ApplicationsIncreasing breadth of applicabilityIncreasing breadth of applicability

Cutting-edge Windows Vista gamesCutting-edge Windows Vista games

Workstation graphicsWorkstation graphics

Image, video, and data processingImage, video, and data processing

Page 10: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10 FeaturesDirect3D 10 Features

Texture Arrays Texture Arrays

Format ReinterpretationFormat Reinterpretation

Stream OutputStream Output

Resource ViewsResource Views

Input AssemblerInput Assembler

Immediate offset on Memory Immediate offset on Memory AccessAccess

Integer/Bitwise InstructionsInteger/Bitwise Instructions

Comparison FilteringComparison Filtering

Constant BuffersConstant Buffers

State ObjectsState Objects

Shared-Exponent HDR Shared-Exponent HDR Compression (RGBE)Compression (RGBE)

Block-Compressed Formats Block-Compressed Formats for bump/normal mapsfor bump/normal maps

128 texture slots128 texture slots

8 Render targets8 Render targets

More interstage More interstage communicationcommunication

Instance, Vertex, Instance, Vertex, Primitive identifiersPrimitive identifiers

Per-primitive Clip distancePer-primitive Clip distance

Predicated RenderingPredicated Rendering

Alpha-to-CoverageAlpha-to-Coverage

Multisample ReadbackMultisample Readback

Better cubemap filteringBetter cubemap filtering

Input AssemblerInput Assembler

……

InputAssembler

Vertex Buffer

Index Buffer

Texture

Texture

Texture

Depth/Stencil

Render Target

Stream Output

VertexShader

GeometryShader

Rasterizer/Interpolator

PixelShader

OutputMerger

Page 11: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10Direct3D 10Geometry Shader ApplicationsGeometry Shader Applications

Full control over the whole triangleFull control over the whole triangleAll-GPU Material SystemsAll-GPU Material Systems

Better materialsBetter materialsHi-quality interpolation and derivativesHi-quality interpolation and derivatives

Wrinkle modelsWrinkle models

Cartoon and falloff effectsCartoon and falloff effects

Geometry/data amplificationGeometry/data amplificationFur/FinsFur/Fins

Procedural geometry/detailingProcedural geometry/detailing

All-GPU Particle SystemsAll-GPU Particle Systems

Data visualization techniquesData visualization techniques

Wide lines and strokesWide lines and strokes

……

Geometry ShaderGeometry Shader

Page 12: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Geometry Shader ExampleGeometry Shader ExampleShadow volume generationShadow volume generation

Page 13: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Geometry Shader ExampleGeometry Shader ExampleGeneralized displacement mapsGeneralized displacement maps

Normal mapping Normal mapping (Direct3D 9)(Direct3D 9)

Page 14: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Geometry Shader ExampleGeometry Shader ExampleGeneralized displacement mapsGeneralized displacement maps

Displacement Mapping Displacement Mapping (Direct3D 10)(Direct3D 10)

Page 15: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Single Pass Render-To-CubemapSingle Pass Render-To-Cubemap

x

y z

uv

Geometry Shader

Page 16: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Single Pass Render-To-CubemapSingle Pass Render-To-Cubemap

Page 17: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Render-To-VolumeRender-To-Volume

Geometry Shader

Page 18: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Stream OutputStream OutputDynamic procedural content exampleDynamic procedural content example

Page 19: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Shader Model 4.0Shader Model 4.0A new level of programmabilityA new level of programmability

Common Shader Core Common Shader Core

Full integer/bitwise instruction setFull integer/bitwise instruction setMassively parallel image and data processingMassively parallel image and data processing

Custom decompression schemesCustom decompression schemes

Buffer LoadBuffer Load – CPU-like unfiltered memory access – CPU-like unfiltered memory access

Switch statements and subroutinesSwitch statements and subroutines

No limitsNo limitsMore interstage registers, samplers, texturesMore interstage registers, samplers, textures

Unlimited instruction countUnlimited instruction count

Page 20: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10 PerformanceDirect3D 10 PerformanceDoing more in a single callDoing more in a single call

Set a bulk of render state with state objectsSet a bulk of render state with state objects

Render to an entire cubemap/volumeRender to an entire cubemap/volume

Render multiple specialized objects using Render multiple specialized objects using advanced instancing featuresadvanced instancing features

Generate procedural detailGenerate procedural detail

Juggle multiple materials in a single shaderJuggle multiple materials in a single shader

Page 21: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10Direct3D 10GPU material managementGPU material management

Render a multitude of unique materials Render a multitude of unique materials without taxing the CPUwithout taxing the CPU

Unlimited instruction lengthUnlimited instruction length

Switch statementsSwitch statements

Texture arraysTexture arrays

Geometry shaderGeometry shader

Constant buffersConstant buffers

Access to material descriptionsAccess to material descriptions

Page 22: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10 PerformanceDirect3D 10 PerformanceMaximizing bandwidth efficiencyMaximizing bandwidth efficiency

Constant BuffersConstant BuffersUpdate shader constant data (light positions, Update shader constant data (light positions, material info, camera info, etc.) in bulk, only material info, camera info, etc.) in bulk, only when neededwhen needed

Streamlined GPU resource Streamlined GPU resource update mechanismsupdate mechanisms

Fast CPU readback via staging Fast CPU readback via staging

New compression formatsNew compression formats

Page 23: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

ConsistencyConsistency

Strictly-defined, consistent Strictly-defined, consistent behavior throughout behavior throughout

IEEE floating-point compliance (almost)IEEE floating-point compliance (almost)Precise FP32 sampling/blending/math/conversion Precise FP32 sampling/blending/math/conversion rules; i.e.rules; i.e.

FP32 shader ops – precise to 1.0 ULPFP32 shader ops – precise to 1.0 ULP

FP32 to Integer – precise to 0.6 ULP per opFP32 to Integer – precise to 0.6 ULP per op

FP16 blending – precise to 0.6 ULP per opFP16 blending – precise to 0.6 ULP per op

32-bit blending required32-bit blending required

Exact line/triangle/anti-aliased Exact line/triangle/anti-aliased drawing rulesdrawing rules

Page 24: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

No Caps In Direct3D 10!No Caps In Direct3D 10!

Direct3D 10 Optional Format SupportDirect3D 10 Optional Format Support>1 Sample MSAA>1 Sample MSAA

32-bit FP filtering32-bit FP filtering

RGB32 Rendertarget (RGBA32 is required)RGB32 Rendertarget (RGBA32 is required)

Hardware (and applications) will scale Hardware (and applications) will scale on perf, not feature selection on perf, not feature selection

Increases breadth of applicabilityIncreases breadth of applicability

Performance is Performance is criticalcritical for a good experiencefor a good experience

Page 25: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

The API exposes Direct3D 10-class hardware The API exposes Direct3D 10-class hardware Performance-focused APIPerformance-focused API

No downlevel hardware support No downlevel hardware support

Clean and consistent APIClean and consistent API All features guaranteed All features guaranteed

Direct3D 10 takes full Direct3D 10 takes full advantage of WDDM advantage of WDDM

Direct3D 10 is Direct3D 10 is Windows Vista/WDDM-only Windows Vista/WDDM-only

WDDM-basic guaranteed to WDDM-basic guaranteed to Direct3D 10 developersDirect3D 10 developers

Kernel ModeKernel Mode

User Mode

Direct3D10: An Inflection PointDirect3D10: An Inflection Point

User-Mode Driver

Graphics Hardware

DXGKmlGPU

Mem Mgr.GPU

Scheduler

Direct3D

Application

Kernel-Mode Driver

Page 26: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10 StatusDirect3D 10 Status

Hardware spec frozen for over a yearHardware spec frozen for over a yearFirst publicly-available Tech Preview in First publicly-available Tech Preview in December 2005December 2005

Aligned with Windows Vista CTP’sAligned with Windows Vista CTP’sUpdates bimonthlyUpdates bimonthly

Direct3D 10 Beta in Windows Vista Beta 2Direct3D 10 Beta in Windows Vista Beta 2

RTM in Windows VistaRTM in Windows VistaCurrently underwayCurrently underway

IHV driver developmentIHV driver developmentConformance test developmentConformance test developmentLaunch titlesLaunch titles

Page 27: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.
Page 28: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

The Next Step: “Direct3D 10.1”The Next Step: “Direct3D 10.1”

Page 29: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10.1 Direct3D 10.1 Design imperativesDesign imperatives

Incremental hardware and software Incremental hardware and software update to Direct3D 10update to Direct3D 10

Strict superset of Direct3D 10 featuresStrict superset of Direct3D 10 features

API support for Direct3D 10 API support for Direct3D 10 and 10.1 hardware and 10.1 hardware

Page 30: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10.1 Direct3D 10.1 GoalsGoals

Guarantee WDDM 2.1-level capability Guarantee WDDM 2.1-level capability to developers and end-usersto developers and end-users

Lower CPU overheadLower CPU overhead

Massive datasetsMassive datasets

Increase capability and performanceIncrease capability and performance““Complete” Direct3D 10Complete” Direct3D 10

Boost image Boost image qualityquality: Improved : Improved anti-aliasinganti-aliasing

Page 31: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10.1 FeaturesFull anti-aliasing control

Application control over:Multi-sample AA (smooth edges)

or

Super-sample AA (smooth edges and interior)

Selecting sample patterns

Pixel coverage maskHigh-quality vegetation, motion blur, particles…

Minimum of 4 samples/pixel required

Page 32: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10.1 FeaturesDirect3D 10.1 FeaturesIncreased pipeline and shader capabilityIncreased pipeline and shader capability

Improved shader resource accessImproved shader resource accessGreater control over MSAA readbackGreater control over MSAA readback

Custom downsample filtersCustom downsample filters

Improved shadow filteringImproved shadow filtering

Float32 filtering requirementFloat32 filtering requirementBetter HDRBetter HDR

Enhanced blendingEnhanced blendingIndependent blend modes per-rendertargetIndependent blend modes per-rendertarget

New blend-able rendertarget formatsNew blend-able rendertarget formats

Increased pipeline precisionIncreased pipeline precision

Page 33: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Direct3D 10.1 FeaturesDirect3D 10.1 FeaturesPerformance enhancementsPerformance enhancements

Enable applications to further exploit Enable applications to further exploit multicore for renderingmulticore for rendering

Fewer API calls for reflections and refractionsFewer API calls for reflections and refractionsSupport for indexable, generalized cubemap arraysSupport for indexable, generalized cubemap arrays

x

y z

x

y z

x

y z

x

y z

Page 34: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Call To ActionCall To Action

Invest in performant Direct3D graphics – Invest in performant Direct3D graphics – end-user value scales with performanceend-user value scales with performance

Not just games! Not just games! (but games will look (but games will look muchmuch better) better)

Direct3D 10 and WDDM for 2007Direct3D 10 and WDDM for 2007

Direct3D 10.1 and WDDM 2.1 for “next”Direct3D 10.1 and WDDM 2.1 for “next”

Page 35: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

Additional ResourcesAdditional Resources

DirectX Developer Center DirectX Developer Center http://http://msdn.microsoft.commsdn.microsoft.com/DirectX/DirectX

Direct3D 10 Tech PreviewDirect3D 10 Tech PreviewAvailable in the DirectX SDKAvailable in the DirectX SDK

Includes ~25 samples and tutorials – Includes ~25 samples and tutorials – with videoswith videos

Direct3D 10 reference rasterizer, Direct3D 10 reference rasterizer, documentation, tools…documentation, tools…

Game Developer Conference 2006Game Developer Conference 2006and PDC 2005 Direct3D 10 presentationsand PDC 2005 Direct3D 10 presentations

Related sessionsRelated sessionsFuture Directions in GraphicsFuture Directions in Graphics

WDDM v2 and BeyondWDDM v2 and Beyond

Page 36: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.

© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions,

it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 37: DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms Unit Microsoft Corporation.