360 likes | 897 Views
SAC-217T. Graphics on the server. Akshay Agrawal Senior Program Manager Microsoft . Agenda. What is Graphics on Server? The Graphics Driver Model in Windows 8 supports key server scenarios How to take advantage of the Graphics Driver Model
E N D
SAC-217T Graphics on the server Akshay Agrawal Senior Program Manager Microsoft
Agenda • What is Graphics on Server? • The Graphics Driver Model in Windows 8 supports key server scenarios • How to take advantage of the Graphics Driver Model • This session highlights how the Graphics Driver model • brings the Metro style experience to server • offers rich functionality for users, developers and administrators
What is Graphics on Server? • Administrator logging in to Windows to manage a server • Harnessing the power of a GPU for computational purposes
Metro style UX and Apps Single Graphics Driver Model • DirectX technologies like: Direct3D, Direct2D, DirectWrite • Aero via the Desktop Window Manager (DWM) • Single code base for ISVs • Availability • Reboot-less driver upgrade • Timeout Detection and Recovery (TDR) • GPU preemption and fault tolerance • Single code base for IHVs - Improved reliability • Innovations • UEFI GOP • Headless system • Collaboration and Remote Desktop Access APIs • DirectCompute
Scenarios • Administrator logs into the Windows desktop of a physical or virtualized server • Vendor provided WDDM driver OR • Microsoft provided WDDM driver
Full Graphics Driver Types of WDDM Drivers • Windows Vista, Windows 7 and Windows 8 • Render + Display + Protected Video playback • Hardware accelerated Direct3D • Discontinuing support for desktop modes less than 32 Bits Per Pixel • Display Only Driver • Supports display out functionality only • No need for 2D and 3D acceleration in hardware • Supports Metro style experience using inbox software rasterizer • Hardware accelerated (region moves, mouse pointer) • Multiple monitors
Display Only Driver - Under the hood Driver Installation Windows Display Only driver Device Start Report displays and EDID Query for display connectivity state Process mouse pointer data* Render frame and place in system memory Mouse pointer data Process frame data* Provide rich metadata for frame Dirty region, screen to screen move Scan out physically or virtually * Hardware acceleration possible
Microsoft Basic Display Driver • Windows includes a default Display Only Driver • Replaces both the VGASAVE and VGAPNP drivers • Supports Metro style experience and apps • Brings full DirectX capabilities to Server apps • Direct3D 3 - 11.0 APIs • DDRAW and DXVA video processing • Adds support for UEFI GOP • VESA BIOS still supported
Multi Adapter support Vendor WDDM Driver Vendor WDDM Driver Basic Display Driver IHV A IHV B Post Device Non-Post Device
Scenarios • Server specifically used for high end computational tasks • Vendor provided WDDM driver OR • Microsoft provided WDDM driver
Full Graphics Driver Types of WDDM Drivers • Windows Vista, Windows 7 and Windows 8 • Render + Display + Protected Video playback • Hardware accelerated Direct3D • Discontinuing support for desktop modes less than 32 Bits Per Pixel • Display Only Driver • Supports display out functionality only • No need for 2D and 3D acceleration in hardware • Supports Metro style experience using inbox software rasterizer • Hardware accelerated (region moves, mouse pointer) • Multiple monitors • Render Only Driver • Supports hardware accelerated 2D and 3D operations • Does not support any display out • No TDR for long compute tasks
WDDM Render only driver • Supports all Render capabilities of WDDM • Works multi-adapter, multi-vendor • Works with Microsoft Basic Display Driver as post device • Easy to modify existing Full WDDM driver to WDDM Render Only driver
Microsoft Basic Render Only Driver • Windows includes a default Render Only Driver • Software rasterizer • Can always be enumerated as an adapter in the system • Identified by DXGI_ADAPTER_FLAG_SOFTWARE • Full D3D 11.0 API support including: • Compute Shader • Dynamic Shader Linkage • Tessellation • Shader Model 5.0 • 16K textures • 8 bits of sub-pixel precision • Indexable samplers • DrawIndirect
Headless System • What is Headless system? • System configuration with NO Graphics hardware • Remote Desktop access only • Currently stub driver or VGA driver needed to emulate Int10 • Windows 8 supports truly Headless systems • No Graphics hardware needed
DirectX in Session 0 • DirectX APIs used in compute scenarios • Video processing • Animation • Compute • Run as a background process without requiring a user to log in • Windows 8 enables all Direct3D APIs in session 0 • Except: DXGISwapchain and DXGIOutput
C++ Accelerated Massive Parallelism What • Part of C++ & Visual Studio v.Next • STL-like library for parallel patterns on large arrays • Builds on Direct3D Why • Performance • Productivity • Portability How #include <amp.h> using namespace concurrency; void AddArrays(int n, int * pA, int * pB, int * pC) { array_view<int,1> a(n, pA); array_view<int,1> b(n, pB); array_view<int,1> sum(n, pC); parallel_for_each( sum.grid, [=](index<1> idx) restrict(direct3d) { sum[idx] = a[idx] + b[idx]; } ); }
Scenarios • Share or Remotely access an existing windows desktop • Desktop Duplication API
Desktop Duplication API • New DXGI Based API for duplicating screen • Designed for remote desktop access and collaboration • Works with Metro style user interface and apps • Bitmap based duplication • Works with DirectX, HTML5, GDI, WPF • Duplication along monitor boundaries • Protected content automatically blocked
Under the hood App Windows Acknowledge duplication Selects monitor(s) to duplicate Process Mouse pointer data* Render frame and place in DX surface Mouse pointer data Process frame data* Provide rich meta data for frame Dirty region, screen to screen move Process data for transmission * Transmit * Hardware acceleration possible
No change to existing driver • Drivers now certified specifically for Client vs. Server • No support for less than 32 bpp desktop mode • WDDM Driver Moving to Single Graphics Driver Model • VGA Driver • No change • Automatic migration to Microsoft provided inbox Basic Display Driver • Basic Display Driver • IHV provided WDDM Display Only Driver • Hardware XDDM Driver • Virtualized XDDM driver • ISV provided WDDM Display only Driver • XDDM Mirror Driver • Desktop Duplication API • Existing applications will work
Recap • WDDM enables Metro style experiences and apps on server • WDDM has evolved to optimize for Server specific scenarios • Moving from XDDM drivers to WDDM driver is easy • Windows 8 brings infrastructure changes for HPC scenarios
Related sessions • APP-198T: Build assistive technologies for Windows 8 • APP-215T: Certifying graphics experiences on Windows 8 • HW-218T: Understanding the Windows 8 graphics driver model • HW-220C: Chalk Talk: Transitioning from XDDM to WDDM • SAC-428T: Design for a multimillion thin client market with RemoteFX • SAC-642T: Remote desktop experience in Windows 8 • TOOL-802T: Taming GPU compute with C++ AMP • APP-843T: Reaching more customers with accessible Metro style apps in HTML5
Further reading and documentation • WDDM 1.2 whitepaper • Display Only Driver • Documentation – WDK • Sample driver – WDK • Requirements – WHCK • Desktop Duplication API • Documentation – SDK • Sample driver – SDK • Contact info – dxbuildqa@microsoft.com
thank you Feedback and questions http://forums.dev.windows.com Session feedbackhttp://bldw.in/SessionFeedback
© 2011 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.