450 likes | 754 Views
Future Directions In Graphics. David Blythe Software Architect Windows Graphics Microsoft Corporation. The Vision. Windows delivers unparalleled graphics and multimedia experience in all application areas Games Workstation (CAD, Content Creation,…) Presentation Imaging Video
E N D
Future Directions In Graphics David Blythe Software Architect Windows Graphics Microsoft Corporation
The Vision • Windows delivers unparalleled graphics and multimedia experience in all application areas • Games • Workstation (CAD, Content Creation,…) • Presentation • Imaging • Video • Eagerly driving new technologies togetherwith our hardware and software partners
This Session • Overview major technology parts • Provide context for more detailed sessions • Point out interactions between components • Describe where we are going longer term
Session Outline • Windows Graphics Big Picture • Windows Display Driver Model • Rendering APIs (Direct3D, OpenGL, GDI) • Device APIs (DXGI) • Desktop Window Manager • Media APIs (DirectX Video Acceleration) • Presentation APIs (WPF) • Future
Big PictureSimplified Workstation(Inventor) Games(Oblivion) Imaging(PhotoViewer) Video(MediaPlayer) Presentation(Office) … WindowsPresentationFoundation Shell DesktopWindow Mgr PIX MediaFoundation MIL DShow WindowsColor System GDI+ OpenGL Direct3D DXVA DXGI User GDI PrintTerminal ServerRemote Assistance… XPDM WDDM
Graphics Core In Windows Vista Microsoft- written code IHV-written code WPF DWM PIX Media Foundation MIL GDI Legacy D3D APIs DX VA D3D9 D3D9 Ex Direct3D 10 DXGI OpenGL OpenGL ICD Common pipeline (DDI) User-Mode Driver User Mode Kernel Mode Win32Kernel DXGKernel Kernel-Mode Driver
Windows Display Driver Model • Bedrock upon which all graphics are built • Fundamental principle • Graphics Just Works • Re-architect entire driver stack • Consolidate 10 years of evolution • New driver model delivers • Stability • Security • Availability (application virtualization) • Performance
Windows Display Driver Model • Staged evolution of driver model • WDDM 1.0 model supports current hardware • E.g., pre-Windows Vista hardware • Advanced model (WDDM 2.x) utilizes new hardware features • Post Windows Vista • More efficient virtualization • Old Windows XP driver model still supported for compatibility • No new features
Windows Display Driver Model • For more information: WDDM v2 and Beyond, Steve Pronovost, et al.
Rendering APIs • Lots to choose from • GDI/GDI+ • DirectDraw • Direct3D [3..10] • OpenGL • (Windows Presentation Foundation) • Break into categories • Legacy • Mainstream (GDI, Direct3D 9/9Ex) • New (Direct3D 10)
User Mode Kernel Mode Legacy APIs WPF Microsoft-written code IHV-written code DWM PIX Media Foundation MIL GDI Legacy D3D APIs DX VA D3D9 D3D9 Ex Direct3D 10 DXGI OpenGL OpenGL ICD Common pipeline (DDI) User-Mode Driver Win32 Kernel DXGKernel Kernel-Mode Driver
Legacy APIs • Older Direct3D immediate mode APIs supported • D3DRM (retained mode) API retired • Map older runtimes onto Direct3D 9 DDIs • E.g., runtimes ≤ Direct3D 8, DirectDraw • Fixed-function onto shaders, etc. • Direct3D9 interface matches DirectX 9.0c • Same behavior as Direct3D 9 on Windows XP • Maintain application compatibility
Direct3D9Ex Microsoft- written code IHV-written code WPF DWM PIX Media Foundation MIL GDI Legacy D3D APIs DX VA D3D9 D3D9 Ex Direct3D 10 DXGI OpenGL OpenGL ICD Common pipeline (DDI) User-Mode Driver User Mode Kernel Mode Win32 Kernel DXGKernel Kernel-Mode Driver
Direct3D9Ex • Enhanced version of Direct3D 9 • Also known as “DX9.L” • Cross-process shared surfaces • “Unlimited memory” • All memory resources are “managed” • Resource management controls • Prioritization of resources • Antialiased text rendering support • Monochrome texture filter with large kernel size • No more “device lost” • Less frequent “device removed”
OpenGL Microsoft- written code IHV-written code WPF DWM PIX Media Foundation MIL GDI Legacy D3D APIs DX VA D3D9 D3D9 Ex Direct3D 10 DXGI OpenGL OpenGL ICD Common pipeline (DDI) User-Mode Driver User Mode Kernel Mode Win32 Kernel DXGKernel Kernel-Mode Driver
OpenGL • Three options for Windows Vista Developers • OpenGL 1.1 software implementation • XP driver model OpenGL ICDs • Not DWM-compatible, DWM shuts off • 3rd party WDDM OpenGL ICDs • DWM compliant • Limited inbox support for application compatibility • Using Direct3D 9
GDI/GDI+ • Workhorse for Windows • Presentation/UI, device control, etc. • Reduced hardware acceleration in Windows Vista • Necessary to accomplish WDDM implementation • Continue to tune before release • Continue to invest in GDI in future • Protect API investment • Enhance where feasible
Direct3D 10 And DXGI Microsoft- written code IHV-written code WPF DWM PIX Media Foundation MIL OpenGL ICD GDI Legacy D3D APIs DX VA D3D9 D3D9 Ex Direct3D 10 DXGI OpenGL Common pipeline (DDI) User-Mode Driver User Mode Kernel Mode Win32 Kernel DXGKernel Kernel-Mode Driver
Direct3D 10 • Next Version of Direct3D • Supported in Windows Vista • Proposed Premium Logo requirement • Major improvements in • Hardware consistency • Rigorous specification, elimination of capability bits • Programmer expressiveness • Unified, more capable, shader programming model • Flexible memory model • New pipeline stages • WDDM + Direct3D 10 are fundamental improvementto the Windows gaming platform
Direct3D 10 • Additional information: DirectX Graphics: Direct3D 10 and Beyond, Sam Glassenberg
DXGI • Separate rendering from device management • DXGI (eventually) does • Adapter management • Display mode management • Present to monitor • Output management • Gamma/Color • Improvements of GDI 256 entry table • Monitor controls • Long term, subsumes functionality from GDI • Currently only works with Direct3D 10
Desktop Window Manager • New desktop experience using WPF and DirectX • Uses new D3D9Ex interfaces • Desktop Window Manager (DWM) • Composited desktop • Window movement without repainting underlying windows • No more dragging garbage • Client areas from applications • GDI, Direct3D, WPF • Video • Non-client areas from the Window Manager • Allows different views of application windows
Desktop Window Manager • Supports high-dpi displays • Composition with magnification • Supports video playback • Takes advantage of Direct3D 9 shaders • For non-client areas, transitions • Animated transitions, etc. • New D3D9Ex cross-process shared surfaces • Allows DWM to access application back buffers • Turns off when certain application types running • Overlay planes, front buffer rendering,…
Desktop Window Manager WPF Application D3D Application GDI Application surface surface surface Desktop Window Manager
Full Screen Exclusive, Multimon, And DWM • Continue to allow apps to have exclusive monitor access • Control video mode, gamma, etc… • Desktop window manager disappears • Other applications can continue to run • May bump the priorities of the output-exclusive app • Applications should recognize case where client area is occluded • Background processing on the GPU • Multiple monitors independent • Composited desktop image per monitor • Exclusive output independent for each monitor
Media APIs WPF Microsoft- written code IHV-written code DWM PIX Media Foundation MIL GDI Legacy D3D APIs DX VA D3D9 D3D9 Ex Direct3D 10 DXGI OpenGL OpenGL ICD Common pipeline (DDI) User-Mode Driver User Mode Kernel Mode Win32 Kernel DXGKernel Kernel-Mode Driver
Imaging • Hardware accelerated photo experience • 12-16Mpix @ 60 fps • Builds on Direct3D 9 API • Uses texture mapping + shading for image processing • Rely on Shader Model 2.0 capabilities • Float16 processing • Lots of accelerator memory • Large texture images (> 2Kx2K)
Video Acceleration • Relies on more specialized hardware support • Decode: IDCT, motion compensation • Processing: Deinterlace, denoise, scale, mixing • Content protection of high value data • OPM, Protected Video Path • Supported through DirectX Video Acceleration (DXVA) APIs • Media Center and Media Player use same pipeline
Video Acceleration • Additional information: Windows VistaVideo Pipeline Architecture and Implementation, Glenn Evans; How to Implement Windows Vista Content Output Protection, Dave Marsh
Windows Presentation Foundation • Highly integrated stack • Layout, text, video, audio, imaging • Builds on other parts of stack • Media Foundation • Imaging • Direct3D 9 • WCS
DWM And WPF • Additional information: Desktop and Presentation Impact on Hardware Design, Kam Vedbrat
Future Technologies • Warning: These are directions not commitments • Continue the vision • Rich graphics and media experience • Available all the time to all applications • Robust, efficient, applications don’t interfere • Scales across mobile, desktop,… • Seamless print, remote, terminal server
Windows Display Driver Model • Lots of areas to address • Move to preemptive context switching and page-level memory management ASAP WDDM2.1 • Flexible multi-GPU, linked adapters (LDA) • Graphics multiprocessing • Power management • Boot video, VGA, ACPI/BIOS • Virtual Machine support
Display/Device Technologies • Color managed desktop • Hi-def color (float16) • Consumer Electronics (TV) devices • Greater format coverage • Multimon • Improve the fullscreen/windowed experience • Multi-desktop support • Magnification • Monitor controls • DDC/CI • Rationalize GDI/DXGI device control
Rendering Technologies • Game applications • Higher-def, procedural content • Surface tessellation, order-independent transparency • Shader expressiveness • Presentation technologies • Move to Direct3D 10 base by 2009? • Text, antialiasing, 2D rendering • Rendering quality • Multicore CPU investments • Process or move data faster
Media Technologies • Imaging • Direct3D 10 provides ideal base • Move to “HDR” (actually 16-bit MDR) • Minor improvements for additional image formats • 16-bit fixed in addition to 16-bit float • Video • Content Protection (Protected Video Path) • Glitch-resilience • Preemptive context switching in WDDM 2.1 is key • Hardware Encode/Analysis • Background transcoding • Processing • HD-DVD compositing scenarios
General Compute (GPGPU) • GPU rapidly generalizing • Good at high-bandwidth, data-parallel compute • Image processing, video processing, physics,… • 100 GB/s, 300+ GFlops • Looking at more generalized infrastructure • Don’t draw triangles to trigger computations • Enabled by • Hardware implementation consistency • Fast CPU ↔ GPU data transfer • Multi-GPU support
Call To Action • Windows Vista • Hardware-accelerated graphics all the time • WDDM 1.0 • Direct3D 9/9Ex is everywhere – now • Rapid adoption of Direct3D 10 – it delivers the future • DXVA, content protection, glitch reduction • Next • WDDM 2.1 – efficient GPU virtualization • Direct3D 10.1 – incremental changes to 10 • Hi-def color, HD-DVD • Greater generalization of GPU capabilities
Additional Resources Directx @ microsoft.com • Email: • Related Sessions • WDDM v2 and Beyond • DirectX Graphics: Direct3D 10 and Beyond • Desktop and Presentation Impact on Hardware Design • How To Support Windows Color System in Printers, Displays, and Image Capture Devices • DXVA 2.0: A New Hardware Video Acceleration Pipeline for Windows • Windows Vista Video Pipeline Architecture and Implementation • How to Implement Windows Vista Content Output Protection
© 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.