Max McMullen Direct3D Development Lead 3-564: Direct3D 12 API Preview Direct3D 12 API Preview.
DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms...
-
Upload
braulio-bourke -
Category
Documents
-
view
215 -
download
1
Transcript of DirectX Graphics: Direct3D 10 and Beyond Sam Z. Glassenberg Lead Program Manager Graphics Platforms...
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
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
Graphics Core In Windows VistaGraphics Core In Windows Vista
Direct3D10
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
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
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
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
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
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
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
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
Geometry Shader ExampleGeometry Shader ExampleShadow volume generationShadow volume generation
Geometry Shader ExampleGeometry Shader ExampleGeneralized displacement mapsGeneralized displacement maps
Normal mapping Normal mapping (Direct3D 9)(Direct3D 9)
Geometry Shader ExampleGeometry Shader ExampleGeneralized displacement mapsGeneralized displacement maps
Displacement Mapping Displacement Mapping (Direct3D 10)(Direct3D 10)
Single Pass Render-To-CubemapSingle Pass Render-To-Cubemap
x
y z
uv
Geometry Shader
Single Pass Render-To-CubemapSingle Pass Render-To-Cubemap
Render-To-VolumeRender-To-Volume
Geometry Shader
Stream OutputStream OutputDynamic procedural content exampleDynamic procedural content example
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
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
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
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
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
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
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
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
The Next Step: “Direct3D 10.1”The Next Step: “Direct3D 10.1”
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
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
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
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
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
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”
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
© 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.