anantha kancherla group program manager microsoft corporation pc04

60
Writing Your Application to Shine on Modern Graphics Hardware DirectX for mainstream applications Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Upload: mervyn-chandler

Post on 15-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Writing Your Application to Shine on Modern Graphics Hardware DirectX for mainstream applications

Anantha KancherlaGroup Program ManagerMicrosoft Corporation

PC04

Page 2: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Agenda

Where is Graphics Hardware headed How does Win7 adapt to HW changes

The expanding role of DirectX in Windows 7

Addressing new graphics scenarios and fundamentals in Windows 7 timeframe

Page 3: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Increasing generalism. Array of SIMD ALUs Arithmetic, flow control, read,

write Some fixed function units such as

tessellation

Courtesy: Tom’s Hardware

Order of magnitude difference between low and high end

Page 4: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Windows 7's Usage of the GPU

Continues from Windows Vista… Media Center UI Video Playback Desktop Window Manager (DWM)

Windows 7 DWM uses Direct3D10.1 API Scales in performance all the way from low end

integrated to high end GPUs Shaders are used for blurs in the Glass Windows 7 cuts memory consumption is cut by

50% per window More and richer animations of the thumbnails

Page 5: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High DPI High Color

Page 6: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Description Horizontal Vertical Width (in) Panel DPI 15.4" WXGA 1280 768 15.4 9717" WXGA+ 1440 900 17 10014.1" WXGA 1280 768 14.1 10615.4" WXGA+ 1440 900 15.4 11013.3" WXGA 1280 768 13.3 11217" WSXGA+ 1680 1050 17 11714.1" WXGA+ 1440 900 14.1 12012.1" WXGA 1280 768 12.1 12313.3" WXGA+ 1440 900 13.3 12715.4" WSXGA+ 1680 1050 15.4 12917" WUXGA 1920 1200 17 13315.4" WUXGA 1920 1200 15.4 147

High DPI Displays are Common

Improvements in Windows UI & IE

Automatic configuration in OOBE

Promotion the Control Panel UI for DPI

Page 7: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High Color

Wider Gamut Bigger than sRGB eg. xvYCC, AdobeRGB

Higher precision Higher Dynamic Range

Page 8: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High Color

Wider Gamut Bigger than sRGB eg. xvYCC, AdobeRGB

Higher precision Higher Dynamic Range

Windows 7 Provides:Color Calibration ToolGamma LUT Loader

Page 9: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Systems configurations impact Graphics

Laptop sales are now >50% of PC sales

Page 10: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Overview of Changes in Windows 7To adapt to HW changes

Addresses ranges of GPU performance characteristics Cuts memory consumption by 50% per window

High DPI Number of changes in User Interface and IE

Color: Color Calibration Wizard and LUT Loader

Laptop scenarios Monitor hot plug detect

Now let us look at how you can take advantage of this powerful hardware…

Page 11: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Agenda

Where is Graphics Hardware headed How does Win7 adapt to HW changes

The expanding role of DirectX in Windows 7

Addressing new graphics scenarios and fundamentals in Windows 7 timeframe

Page 12: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Graphics APIs for Rich Client Applications

GDI GDI+ DirectX WPF

Native Development

Managed Development

Hardware Acceleration

ImmediateMode

PrimarilyRendering

Input, Focus, Events, Controls

Page 13: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DirectX: When the application needs control over features and performance

WPF: When the application needs richness but needs to be built quickly and there is no need for fine grained control over hw performance and features

GDI: When the application needs to work on all Microsoft OSs and the lowest common denominator functionality is sufficient

When to use which API

Incr

easi

ng H

W E

xplo

itive

ness

Page 14: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Originally designed for Games and to abstract HW

DX9 introduced Floating point shaders HLSL to program shaders Windows Vista adopted it for many features:

UI: Aero and MCE Image Processing: Windows Photo Gallery

DX10 was designed for more than games Clean API to minimize API overhead Consistent implementation across HW – No Caps Refactored Infrastructure API: DXGI

DirectX Evolution

Page 15: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DirectX == High Performance Graphics

Page 16: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Broad Usage of Direct3D Today

Typical user is someone who needs great performance and very custom/rich rendering

Mapping applications: Eg. VirtualEarth and Google Earth

UI and Application Frameworks: WPF, XNA

User Interfaces: MCE, Zune, DWM

Workstation Applications: Eg. Dassault Systèmes-3DLive, AutoDesk

Applications, Bentley Microstation, SoftImage XSI

Page 17: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Dassault Systèmes – 3DLive

3D Product LifeCycle Management with DirectX10

demo

Jean BuffetR&D Product ManagerDassault Systèmes

Page 18: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

3DLive : feature at glance

Page 19: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Dassault Systèmes 3DLive

3DLive DirectX10 in Action on Windows 7

Demo

Page 20: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DS - 3D Visualization Objectives Providing “Life-like experience” of the virtual

product in 3D Ambiance, animation Realistic rendering (shaders like Car Paint, Sky shader) AAA game level rendering for CAD : Ambient Occlusion,

Full Scene AA, IBL, soft shadows, true transparency Best graphics performances to reach high interactivity (60

fps)

While matching CAD constraints Ability to manage large number of triangles (10 M tri to 100 M tri) : Level of Details, viewpoint-dependent tessellationAbility to manage hundreds of textures & shaders Reach an interactive frame rate (20 fps)Support of CAD-specific visualization mode : wireframe, outlines, hidden edges, hidden line removal

Page 21: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Developer journey from OpenGL to DirectX10 D3D10 is the right level of API for Dassault Systèmes 3D - PLM Applications

D3D9 were gaming oriented API New features proposed by D3D10 allowed developers to implement advanced 3D &

CAD-specific features “Geometry Shader” is the D3D10 answer for specific 3D entities

Line type, line thickness, 3D marker…

ChallengesTechnical Challenge

Full Shader pipe-line at application levelHaving a native Vertex Buffer/Index Buffer managementEmulate the OpenGL immediate mode in an efficient way

Review your design patternMore work at apps level but gives more room for optimizationGood opportunity to rework applicative architecture

Page 22: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Follow Up

http://www.3ds.com

http://www.3dvia.com

Page 23: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Area Existing API(s) Challenges

3D DX3…DX10 Not always available:•No HW•Server•Remoted

2D GDI, GDI+ Quality, Performance

Text GDI Quality, Not up to date

Imaging GDI, GDI+, WIC Extensive format support, Security

Device Control GDI Outdated notion of HW config

Current Platform Challenges

Page 24: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Area Existing API(s) Challenges

3D D3D3…D3D10 Not always available:•No HW•Server•Remoted

Direct3D 10.1

2D GDI, GDI+ Quality, Performance

Text GDI Quality, Not up to date

Imaging GDI, GDI+, WIC Extensive format support, Security

Updated WIC

Device Control GDI Outdated notion of HW config

DXGI 1.1

Advancing the platform

Page 25: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Area Existing API(s) Challenges

3D D3D3…D3D10 Not always available:•No HW•Server•Remoted

Direct3D 10.1

2D GDI, GDI+ Quality, Performance Direct2D

Text GDI Quality, Not up to date DirectWrite

Imaging GDI, GDI+, WIC Extensive format support, Security

Updated WIC

Device Control GDI Outdated notion of HW config

DXGI 1.1

Advancing the platform

Page 26: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Advancing the platform

Introducing…

Direct2DDirectWrite

Page 27: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DXGKernel

DXGI

Win32K

GDI+

USER

Direct3D 11Direct3D 10

DWMDirect2D

DirectWrite

GDI

WIC

DXVA

Microsoft Confidential

Hardware

Direct3D9

Page 28: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Properties of DirectX APIs

Primary focus: Large scale Win32 application developers with existing

codebases Designed around needs of Windows UI, Internet

Explorer, Microsoft Office Side-by-side components

Can mix-n-match Interface based APIs w/ C/C++ Hardware accelerated Immediate mode rendering Interops with older Win32 APIs Available on Windows Vista

Page 29: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Direct3D 10.1 is the Foundation

Always available: D3D10L9 for DX9 HW Full SW emulation when there is no HW Fully remoted via primitives and bitmaps

Supports GDI compatible color channel ordering

Direct3D 10 HW is a Premium Logo requirement in Vista

Page 30: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Direct3D 11: Increasing GPU Utility

Strict superset of Direct3D10 Runs on Direct3D 9, 10 and 11 HW New Graphics features

Improved multi-threading support (Need new HW) Tessellation (Need new HW) Subroutine support in shaders

Compute Shader Enables non-Graphics usages (GPGPU) Integrated with graphics for imaging usage Program with familiar HLSL and D3D resource model

PC03: Unlocking the GPU with Direct3D ES21: Windows 7 Presentation Virtualization: Graphics Remoting

( RDP) Today and Tomorrow

Page 31: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Direct2D: New in Windows 7

Rendering Focused Immediate Mode API: 2D Vectors & Geometry, Bitmaps and Text Hardware and Software Pipelines

Built for Performance on Direct3D 10.1 Interoperable with Direct3D and GDI High Quality Rendering:

Per Primitive Anti-Aliasing and MSAA via Direct3D

Remoted via Direct3D 10.1 Printing support via XPS

Page 32: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DirectWrite: New in Windows 7

Modern Typography Enables world-wide applications ClearType advances Works with any rendering technology Hardware accelerated via Direct2D

Page 33: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

API Interop

All DirectX APIs interop with each other. Eg. D2D/D3D, DWrite/D2D etc.

DirectX APIs interop with GDI Interop between DX and GDI is high

performance in Win7 Directly blitting to front buffer via GDI can

cause unpredictable results GetDC() is the preferred way

Page 34: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DX/GDI Interop

//DX CodeCreateRenderTarget()Draw()Present()

// GDI CodeGetDC()DrawLine()ReleaseDC()

Windows Vista

Windows 7

Copy 1

Copy 2

Page 35: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

More Details…

Direct2D, DirectWrite and Interop between APIs are covered in:

PC18: Introducing Direct2D and DirectWrite Hands on Lab: DirectX

Page 36: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Performance with DirectX

Very important to scale graphics content by HW Since GPUs vary widely in performance Identify min-bar and tiers of performance

Important to always respond Main loop should handle only input and rendering No disk or network I/O and computation in this loop

Have a benchmark mode in your application

PIX is a powerful performance debugging tool in DX SDK

Page 37: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

PIX

demo

Page 38: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

GDI+ in Win7

GDI+ is largely unchanged. Except: v1.1 is default

CMYK support Effects (Blur, Sharpen, Tint etc.) GDI+ 1.1 uses WIC for image loading

v1.0 is deprecated can be forced via manifest

Page 39: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DirectX Going Ahead

DirectX is for all applications that need high performance graphics, not just games Windows 7 Desktop itself is now built on

Direct3D 10.1 Direct3D 10.1 is the Foundation API Two new DirectX APIs in Win7

Direct2D and DirectWrite PIX in DX SDK helps with tuning

performance Longer term DirectX APIs will replace GDI

functionality

Page 40: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Agenda

Where is Graphics Hardware headed How does Win7 adapt to HW changes

The expanding role of DirectX in Windows 7

Addressing new graphics scenarios and fundamentals in Windows 7 timeframe

Page 41: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High Color

Page 42: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Areas of Application

Primarily Imaging Applications Medical Visualization Presentation Photography CAD

Page 43: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Windows7 High Color Support

3 new formats added in WIC, WCS and DXGI Works in full-screen and overlay mode

10 bpc sRGB 10 bpc XR 16bpc HDR

Precision Higher (Medical, Technical)

Same as 8-bit High

Gamut sRGB (below current camera sensors)

Matches current cameras, TVs (eg. xvYCC)Covers human vision

High

Dynamic Range Low Low High

Power/Perf requirements

Same as 8-bit Same as 8-bit High

Page 44: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Dynamic HW Changes

Page 45: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Common Scenarios

Laptop docking/un-docking USB Displays plug/un-plug Other full-screen exclusive mode

applications launching Hybrid laptops where GPUs switch

Page 46: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Dynamic System Changes GDI Applications

Heed WM_DISPLAYCHANGE message Tells you when the resolution has changed Always stick with the desktop resolution

Unless for perf Adapt your layout if needed

Heed WM_DEVICECHANGE message Tells you when laptop docks/undocks

Page 47: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Dynamic System Changes DX Applications

Monitor via return value from IDXGISwapChain::Present() API and respond based on the return code: DXGI_STATUS_OCCLUDED - Wait DXGI_STATUS_MODE_CHANGED – “Reset” adapt to the new mode DXGI_ERROR_DEVICE_REMOVED – Stop rendering and wait for

WM_DEVICECHANGE message to re-enumerate HW and re-create device.

IDXGISwapChain::GetDeviceRemovedReason() returns: DXGI_ERROR_DEVICE_HUNG or DXGI_ERROR_DEVICE_RESET for

HW hangs DXGI_ERROR_REMOTE_DISCONNECT tells the app if the network

dropped off

Page 48: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Graphics Fundamental: High DPI

Page 49: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

This was very surprising to us…

Monitor Max Resolution

% Set to Maximum

1280X1024 56%1400X1050 79%1600X1200 32%1680X1050 66%1920X1050 39%1920X1200 78%Avg. set to default 55%

User's Chosen Resolution

% using that resolution

640X480 1%800X600 7%1024X768 57%1280X1024 3%1600X1200 32%Total 100.00%

Details Users with Max Resolution of 1600X1200

Almost half of all of users are not

configuring their display to native

resolution (!)

Users are lowering their screen resolution to get larger text…

Page 50: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High DPI Issues

Clipped Text

Layout Issues & Image Size Issues

Pixilated BitmapsLayout Issues

Blurry UI

Mismatched Font Sizes

Page 51: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

DPI Virtualization

Feature introduced in Vista, Applies to apps which do not declare DPI awareness

Via manifest or via SetProcessDPIAware() Win32 subsystem returns system metrics calls as if the app were

running at 96 DPI (values returned from GetSystemMetrics(), GetDeviceCaps, DEFAULT_GUI_FONT, etc.)

DWM scales the application window when it composes the desktop

DPI Virtualization is a stop-gap, not a solution

Page 52: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High DPI Hands on Lab

Page 53: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

High DPI Solutions

White-paper for fixing desktop applications http://go.microsoft.com/fwlink/?LinkID=12958

8

White-paper on how to use IE8 zoom functionality to fix web apps http://msdn.microsoft.com/en-us/library/cc84

9094.aspx

Page 54: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Summary

Graphics HW these days are extremely powerful

Used properly, tremendous end-user benefits can be realized

However it is important to be aware of the diversity of the PCs out there

Adapt your application to take advantage of this power yet insulate it from the diversity via DirectX APIs

Page 55: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Call to Action

Learn to use DirectX APIs to create rich client applications

Take advantage of new functionality afforded by Win7 such as High Color

Make your application robust against dynamic system changes

Address High DPI issues in your applications

Attend the other DirectX sessions: PC18: Introducing Direct2D and DirectWrite PC03: Unlocking the GPU with Direct3D

Hands on Lab has a number of DirectX tutorials

Page 56: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Dgtsig @ Microsoft.com

http://msdn.microsoft.com/DirectX

Follow Up

Page 57: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 58: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

Please use the microphones provided

Q&A

Page 59: Anantha Kancherla Group Program Manager Microsoft Corporation PC04

© 2008 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 60: Anantha Kancherla Group Program Manager Microsoft Corporation PC04