4/23/2017 4:23 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.

Slides:



Advertisements
Similar presentations
Introduction to Direct3D 10 Course Porting Game Engines to Direct3D 10: Crysis / CryEngine2 Carsten Wenzel.
Advertisements

DirectX11 Performance Reloaded
DirectX Graphics: Direct3D 10 and Beyond
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
CS 352: Computer Graphics Chapter 7: The Rendering Pipeline.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Status – Week 257 Victor Moya. Summary GPU interface. GPU interface. GPU state. GPU state. API/Driver State. API/Driver State. Driver/CPU Proxy. Driver/CPU.
RealityEngine Graphics Kurt Akeley Silicon Graphics Computer Systems.
G30™ A 3D graphics accelerator for mobile devices Petri Nordlund CTO, Bitboys Oy.
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
ABC HFG JKLW OPQR NTU VS YZ.
GRAPHICS AND COMPUTING GPUS Jehan-François Pâris
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
ATI GPUs and Graphics APIs Mark Segal. ATI Hardware X1K series 8 SIMD vertex engines, 16 SIMD fragment (pixel) engines 3-component vector + scalar ALUs.
Status – Week 260 Victor Moya. Summary shSim. shSim. GPU design. GPU design. Future Work. Future Work. Rumors and News. Rumors and News. Imagine. Imagine.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
Presentation by David Fong
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
Sort-Last Parallel Rendering for Viewing Extremely Large Data Sets on Tile Displays Paper by Kenneth Moreland, Brian Wylie, and Constantine Pavlakos Presented.
You can use 3D graphics to enhance and differentiate your Metro style app.
Realtime 3D Computer Graphics Computer Graphics Computer Graphics Software & Hardware Rendering Software & Hardware Rendering 3D APIs 3D APIs Pixel & Vertex.
Computer Graphics Introducing DirectX
DXVA 2.0 A new Hardware Video Acceleration Pipeline for Windows Vista
Emotion Engine A look at the microprocessor at the center of the PlayStation2 gaming console Charles Aldrich.
High Performance in Broad Reach Games Chas. Boyd
Filtering Approaches for Real-Time Anti-Aliasing /
Background image by chromosphere.deviantart.com Fella in following slides by devart.deviantart.com DM2336 Programming hardware shaders Dioselin Gonzalez.
© Copyright Khronos Group, Page 1 Harnessing the Horsepower of OpenGL ES Hardware Acceleration Rob Simpson, Bitboys Oy.
CHAPTER 4 Window Creation and Control © 2008 Cengage Learning EMEA.
Practical PC, 7th Edition Chapter 17: Looking Under the Hood
Faster 2D graphics on Windows 8 Your app will run faster on Windows 8.
4.7. I NSTANCING Introduction to geometry instancing.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Principles of I/0 hardware.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Interactive Time-Dependent Tone Mapping Using Programmable Graphics Hardware Nolan GoodnightGreg HumphreysCliff WoolleyRui Wang University of Virginia.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
OpenGL ES Performance (and Quality) on the GoForce5500 Handheld GPU Lars M. Bishop, NVIDIA Developer Technologies.
NVIDIA Fermi Architecture Patrick Cozzi University of Pennsylvania CIS Spring 2011.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
1 The Rendering Pipeline. CS788 Topic of HCI 2 Outline  Introduction  The Graphics Rendering Pipeline  Three functional stages  Example  Bottleneck.
Tone Mapping on GPUs Cliff Woolley University of Virginia Slides courtesy Nolan Goodnight.
1 Latest Generations of Multi Core Processors
Ritual ™ Entertainment: Next-Gen Effects on Direct3D ® 10 Sam Z. Glassenberg Program Manager Microsoft ® – Direct3D ® Doug Service Director of Technology.
Xbox MB system memory IBM 3-way symmetric core processor ATI GPU with embedded EDRAM 12x DVD Optional Hard disk.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Maths & Technologies for Games Graphics Optimisation - Batching CO3303 Week 5.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Lecture.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
Emerging Technologies for Games Capability Testing and DirectX10 Features CO3301 Week 6.
Ray Tracing using Programmable Graphics Hardware
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
What is DirectX? DirectX is built by Microsoft as a collection of API’s (Application Programming Interfaces) for the purpose of multimedia processing.
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
Build /24/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Chapter 6 GPU, Shaders, and Shading Languages
A lap around DirectX game development tools
Certifying graphics experiences on Windows 8
Introduction to geometry instancing
RADEON™ 9700 Architecture and 3D Performance
Computer Graphics Introduction to Shaders
02 | What DirectX Can Do and Creating the Main Game Loop
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Graphics Processing Unit
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

4/23/2017 4:23 AM © 2009 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.

Developing Metro style games on the Full Range of Windows 8 Devices Dan McLachlan Principal Program Manager Lead Direct3D Microsoft Corporation © 2010 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.

Agenda Windows 8 hardware diversity A unified 3D API to access the power of the GPU Designing for the Broadest Reach Strategies for dynamic calibration Tile-based rendering optimizations Recommendations

Windows 8 Hardware Diversity 4/23/2017 4:23 AM Windows 8 Hardware Diversity © 2007 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.

Hardware Landscape

Wider range of hardware implies reconsideration of your design point

New Category of Windows PCs 4/23/2017 4:23 AM New Category of Windows PCs New design point Always on, always connected System on a chip Battery is primary power source Focus on low power Both x86/x64 and ARM-based systems Covers a range of form factors

4/23/2017 4:23 AM A Unified 3D API © 2007 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.

DirectX Versions Windows XP  DirectX 9 Hardware  Direct3D 9 API Windows Vista  DirectX 10 Hardware  Direct3D 10 API Windows 7  DirectX 11 Hardware  Direct3D 11 API How do you design your software for all this hardware?

Feature Levels Direct3D 11 provides a uniform interface to access hardware capabilities Feature Levels map to hardware capabilities Feature_Level_9  DirectX 9 Hardware Feature_Level_10  DirectX 10 Hardware Feature_Level_11  DirectX 11 Hardware

Direct3D 11 is the API for driving graphics hardware

Direct3D Features (all Feature Levels) HLSL shader programming Low-precision and high-precision instructions Consistent implementation on all devices

Feature Level 9 (Available on ALL hardware) Vertex shaders Pixel shaders 8 Textures 4 Render Targets Cube maps Volume textures Anisotropic filtering Antialiasing HDR rendering Texture compression

Feature Level 10 (Available on DirectX 10 and later hardware) Vertex shaders Pixel shaders 8 Textures 4 Render Targets Cube maps Volume textures Anisotropic filtering Antialiasing HDR rendering Texture compression Geometry shaders Stream out 128 Textures per shader 8 Render Targets Integers in shaders Vertex textures Shader sampling Constant buffers Alpha-to-coverage Basic DirectCompute Async resource creation

Feature Level 11 (Available on DirectX 11 and later hardware) Vertex shaders Pixel shaders 8 Textures 4 Render Targets Cube maps Volume textures Anisotropic filtering Antialiasing HDR rendering Texture compression Geometry shaders Stream out 128 Textures per shader 8 Render Targets Integers in shaders Vertex textures Shader sampling Constant buffers Alpha-to-coverage Basic DirectCompute Async resource creation Full DirectCompute Random access writes Tessellation shaders New compression formats Shader linkage

New Direct3D 11.1 Features Logic operations in output merger Dynamic updates to constant buffers Low-precision math: min16_float, min10_float, min16_int Hardware can promote silently to single-precision float UAVs at every stage Faster double-precision division instructions Video support Graphics + Video integrated driver MSAD4 instruction Headless/Session 0

Select Feature Levels to Support D3D_FEATURE_LEVEL featureLevels[] = { D3D_FEATURE_LEVEL_11_1, D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_1, D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_9_1 }; UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; © 2010 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.

Create the Device and Context ComPtr<ID3D11Device> device; ComPtr<ID3D11DeviceContext> context; D3D11CreateDevice( nullptr, // use the default adapter D3D_DRIVER_TYPE_HARDWARE, 0, // use 0 unless a software device creationFlags, // defined above featureLevels, // what app will support ARRAYSIZE(featureLevels), D3D11_SDK_VERSION, // should always be D3D11_SDK_VERSION &device, // created device &m_featureLevel, // feature level of the device &context // corresponding immediate context ); © 2010 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.

Designing for Broadest Reach 4/23/2017 4:23 AM Designing for Broadest Reach © 2007 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.

Particle Systems with Dynamic Calibration demo © 2007 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.

Development Strategy Develop on DirectX 11 hardware Target Feature_Level_9 and scale up Include calibration code in game to dynamically configure for current hardware Adjust to maintain performance Be aware of Feature Level differences Test by restricting Feature Level Test on multiple PCs

DirectX Control Panel

Differentiation Use advanced features when available Stereo 3D Tessellation Left eye image Right eye image L R

Differentiation Increase Visual Quality Higher resolution textures Use bump maps

Texture Considerations Balance visual quality with performance Scale back on size via mipmap levels Use block-compressed texture formats 1024 x 1024 512 x 512 256 x 256

Other Considerations Geometry MultiSampling AntiAliasing (MSAA) Feature_Level_11 – use tessellation for more polygon count control Consider lower-resolution (lower vertex count) meshes MultiSampling AntiAliasing (MSAA) Reduce sample count to maintain frame rate Render to a lower resolution and scale up for final image For best image quality, do not scale 2D text

Feature Level ≠ Performance Dynamic calibration is critical to achieving performance

Conventional Belief versus Reality © 2010 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.

Calibration Create device Set limits based on returned Feature Level Render a set of characteristic frames without presenting Adjust based on results

Calibrating Render Performance ComPtr<ID3D11Query> eventQuery; D3D11_QUERY_DESC queryDesc; queryDesc.Query = D3D11_QUERY_EVENT; queryDesc.MiscFlags = 0; m_d3dDevice->CreateQuery(&queryDesc, &eventQuery); m_timer.reset(); Render(); for (int i = 0; i < 18; i++) { m_d3dDeviceContext->Flush(); } m_d3dDeviceContext->End(eventQuery.Get()); if (S_FALSE == _d3dDeviceContext->GetData(eventQuery.Get(), NULL, 0, 0)) while (S_FALSE == m_d3dDeviceContext->GetData(eventQuery.Get(), NULL, 0, D3D11_ASYNC_GETDATA_DONOTFLUSH)); m_timer.tick(); float elapsedTime = m_timer.getDeltaTime(); Initialize a query event Render a set of frames. Wait until all rendering is completed. Get elapsed time. © 2010 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.

Trade-offs: Performance Visual Quality Power Consumption

Increasing Performance Reduce rendering costs Minimize shader computation complexity Minimize redundant work Reduce rasterization work Scale final render target if pixel bound Minimize depth complexity or overdraw

Reducing Rendering Costs New Direct3D features, especially for reducing power consumption Available across ALL feature levels Minimum precision Tile-based rendering optimizations

Minimum Precision Reduce the number of bits of precision in shader calculations Hints to the graphics driver where optimizations can be done Specifies minimum rather than actual precision min16float min12int min16int

Minimum Precision HLSL Code Sample static const float brightThreshold = 0.5f; Texture2D sourceTexture : register(t0); float4 DownScale3x3BrightPass(QuadVertexShaderOutput input) : SV_TARGET { float3 brightColor = 0; // Gather 16 adjacent pixels (each bilinear sample reads a 2x2 region) brightColor = sourceTexture.Sample(linearSampler, input.tex, int2(-1,-1)).rgb; brightColor += sourceTexture.Sample(linearSampler, input.tex, int2( 1,-1)).rgb; brightColor += sourceTexture.Sample(linearSampler, input.tex, int2(-1, 1)).rgb; brightColor += sourceTexture.Sample(linearSampler, input.tex, int2( 1, 1)).rgb; brightColor /= 4.0f; // Brightness thresholding brightColor = max(0, brightColor - brightThreshold); return float4(brightColor, 1.0f); } © 2010 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.

Minimum Precision HLSL Code Sample static const min16float brightThreshold = (min16float)0.5; Texture2D<min16float4> sourceTexture : register(t0); float4 DownScale3x3BrightPass(QuadVertexShaderOutput input) : SV_TARGET { min16float3 brightColor = 0; // Gather 16 adjacent pixels (each bilinear sample reads a 2x2 region) brightColor = sourceTexture.Sample(linearSampler, input.tex, int2(-1,-1)).rgb; brightColor += sourceTexture.Sample(linearSampler, input.tex, int2( 1,-1)).rgb; brightColor += sourceTexture.Sample(linearSampler, input.tex, int2(-1, 1)).rgb; brightColor += sourceTexture.Sample(linearSampler, input.tex, int2( 1, 1)).rgb; brightColor /= (min16float)4.0; // Brightness thresholding brightColor = max(0, brightColor - brightThreshold); return float4(brightColor, 1.0f); } © 2010 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.

Tile-based Rendering Some graphics architectures use tile caches Cache access is much faster than GPU memory bus Goal is to keep data in the cache as long as possible Loops over the command stream once per tile

Typical Rendering Command stream sent to GPU Command Stream CommandBuffer1 Command1 Command2 Command3 Command4 Command5 Command6 CommandBuffer2 CommandBuffer3 Command Stream

Tile Based Rendering Display the final image Send Command Stream to GPU Execute Command Stream for Tile 1 Execute Command Stream for Tile 2 Execute Command Stream for Tile 3 Execute Command Stream for Tile 4 CommandBuffer1 Command1 Command2 Command3 Command4 Command5 Command6 CommandBuffer2 CommandBuffer3 Buffered Commands Execute Command Stream for Tile 5 Execute Command Stream for Tile 6 Display the final image

Tile-based Rendering Optimizations The Challenge: Some rendering sequences result in Direct3D needing to do multiple copies of buffers to ensure rendering correctness. The Solution: New Direct3D APIs provide hints to avoid unnecessary copies. Make a promise about your rendering behavior

Take advantage of tile-based rendering hints and optimizations

Tile-based Rendering Strategies Avoid mid-scene flushes Avoid swapping back and forth between RenderTargets Use scissors when updating small portions of a RenderTarget Use DISCARD and NO_OVERWRITE when possible

Tile-based Rendering Optimizations GPUs with a tile-based rendering architecture can get a performance boost with a special flag: m_swapChain->Present(1, 0); // present the image on the display ComPtr<ID3D11View> view; m_renderTargetView.As(&view); // get the view on the RT m_d3dContext->DiscardView(view.Get()); // release the view

Example: Dynamic Geometry

Example: Dynamic Geometry Create vertex buffer Generate geometry data Draw Present DISCARD No Overwrite Vertex buffer

Recommendations

System Configurations Development machine [Asus G73 Gaming Laptop] AMD 5870M GPU (DX11) 64-bit OS, Core i7 quad core CPU, 8 GB memory Test machine (Laptop) [HP Elitebook 2740p] DirectX 10 graphics and touch 64-bit OS, 4 GB memory Test machine (Netbook) [HP Mini 5102T] DirectX 9.1 graphics and touch 32-bit OS, Atom processor, 1 GB to 2 GB memory

Considerations Touch capabilities are important 4/23/2017 4:23 AM Considerations Touch capabilities are important Minimum screen resolution of 1366 x 768 Test across a diversity of machines

4/23/2017 4:23 AM Conclusion © 2007 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.

Conclusion Windows 8 Runs on the broadest graphics hardware diversity ever Designed for graphics hardware acceleration Direct3D 11 is the 3D API to access the power of the GPU You can get Great Graphics Performance leveraging the GPU AND hit the broadest markets

Strategy Recap Design for Feature_Level_9 Adjust at runtime for actual Feature Level Use advanced features to differentiate when available Dynamically calibrate for smooth performance Use new Direct3D 11 features to better utilize hardware Minimum precision Tile-based rendering optimizations

Further Reading and Documentation Direct3D 11.1 Features D3D11_FEATURE_DATA_D3D11_OPTIONS structure DXGIAdapter2::GetDesc2 method DXGI 1.2 Improvements Creating a DirectX Game Unlocking the GPU with Direct3D (PDC 2008) Direct3D on Downlevel Hardware (MSDN) 10Level9 ID3D11Device Methods (MSDN) 10Level9 ID3D11DeviceContext Methods (MSDN) Hardware Support for Direct3D 10Level9 Formats (MSDN) Questions? Visit the forums on the Windows Dev Center at http://forums.dev.windows.com

4/23/2017 4:23 AM © 2012 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. © 2009 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.