Windows Graphics Overview

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Advertisements

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.
Display Driver Logistics And Testing Nabeel Al-Kady Program Manager Graphics Platforms Unit Microsoft Corporation.
Discovering Computers Fundamentals, Third Edition CGS 1000 Introduction to Computers and Technology Fall 2006.
Tools for Investigating Graphics System Performance
INTRODUCTION OS/2 was initially designed to extend the capabilities of DOS by IBM and Microsoft Corporations. To create a single industry-standard operating.
© David Kirk/NVIDIA and Wen-mei W. Hwu, ECE408, University of Illinois, Urbana-Champaign 1 Programming Massively Parallel Processors Chapter.
Operating Systems.
Advances in Display and Composition Architecture for Longhorn Kam VedBrat Lead Program Manager Windows Client Platform Team microsoft.com Microsoft.
PC Maintenance: Preparing for A+ Certification Chapter 15: Video Cards.
DXVA 2.0 A new Hardware Video Acceleration Pipeline for Windows Vista
Windows Server Licensing
Windows Graphics Architecture
High Performance in Broad Reach Games Chas. Boyd
Configuring the MagicInfo Pro Display
CHAPTER 4 Window Creation and Control © 2008 Cengage Learning EMEA.
Future Directions In Graphics David Blythe Software Architect Windows Graphics Microsoft Corporation.
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.
Chapter 8: Operating Systems and Utility Programs Catherine Gifford Dan Falgares.
The Graphics Rendering Pipeline 3D SCENE Collection of 3D primitives IMAGE Array of pixels Primitives: Basic geometric structures (points, lines, triangles,
Stream Processing Main References: “Comparing Reyes and OpenGL on a Stream Architecture”, 2002 “Polygon Rendering on a Stream Architecture”, 2000 Department.
Microsoft Virtual Server: Overview and Roadmap Mike Neil Product Unit Manager Windows Virtualization microsoft.com Microsoft Corporation.
Ritual ™ Entertainment: Next-Gen Effects on Direct3D ® 10 Sam Z. Glassenberg Program Manager Microsoft ® – Direct3D ® Doug Service Director of Technology.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
The Next Generation Designed for Windows Logo Program: An Introduction Jon Morris Program Manager Windows Logo Program microsoft.com Microsoft.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
Goodbye SMI - ACPI and Graphics Driver/System Firmware Interface Paul Blinzer Staff Engineer ATI Research, Inc.
© 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.
From VIC (VRVS) to ViEVO (EVO) 3 years of experiences with developing of video application VIC for VRVS allowed us to develop a new video application.
Introduction to Operating Systems Concepts
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
MPEG-4 Binary Information for Scenes (BIFS)
Chapter 8 Operating Systems and Utility Programs.
Creating Desktop Video and Animation
Computer Graphics Lecture 32
Graphics on GPU © David Kirk/NVIDIA and Wen-mei W. Hwu,
Graphics Processing Unit
Introduction to OpenGL
Chapter 6 GPU, Shaders, and Shading Languages
The Graphics Rendering Pipeline
Understanding Theory and application of 3D
Introduction to Computers
The Small batch (and Other) solutions in Mantle API
Windows Development Dynadata Copyright, 2014 © DynaData S.A. 1/10.
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Certifying graphics experiences on Windows 8
Graphics Processing Unit
Operating Systems.
Windows Virtual PC / Hyper-V
Chapter 2: Operating-System Structures
Introduction to Operating Systems
Desktop Window Manager
XProtect® progression over time
RADEON™ 9700 Architecture and 3D Performance
Computer Graphics Introduction to Shaders
The bios.
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
HD Audio 1.1 Overview David Flenniken
Introduction to OpenGL
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Chapter 2: Operating-System Structures
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Computer Graphics Introducing DirectX
OpenGL-Rendering Pipeline
CIS 6930: Chip Multiprocessor: GPU Architecture and Programming
Presentation transcript:

Windows Graphics Overview David Blythe Architect Windows Graphics & Gaming Technologies dblythe @ microsoft.com Microsoft Corporation

Session Outline Windows Graphics Big Picture Windows codenamed "Longhorn" Display Driver Model Basic, Advanced driver models Graphics APIs Legacy, Direct3D9, Windows Graphics Foundation, OpenGL Desktop Window Manager Content Protection & Protected Video Path Glitch-Free Media Support Windows Graphics Foundation 2.0

Windows Graphics in Longhorn Microsoft- written code IHV-written code Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

Longhorn Display Driver Model Graphics Just Works Fundamental principle New driver model delivers: Stability Security Availability (virtualization) Performance Staged introduction of driver model Basic model supports current hardware (planned for Longhorn) e.g., pre-Longhorn hardware Advanced model utilizes new hardware features (post-Longhorn) More efficient virtualization Old XP driver model still supported for compatibility No new features

Stability & Security Application graphics state isolated from other applications Surface data (textures, render targets, etc) Virtual address spaces Current rendering state Shaders, etc Command stream is validated Prevents access to unauthorized resources e.g., another application’s surfaces Prevents illegal command streams Avoid sending bad commands to hardware But, still have a watchdog timer Time out if not making forward progress Basic driver model does sw validation in kernel Advanced driver model does hw validation

Virtualization Allow multiple applications to “time slice” the graphics hardware Scheduler determines which command stream to run Basic driver model schedules batches Batch = sequence of commands submitted by application Batch can’t be interrupted once started Advanced driver model schedules contexts Batches accumulated in application context Can interrupt a context and run a different one More responsive to input changes (new work, priority changes) Better user experience

Virtualization Memory manager determines which memory resources need to be resident Unused resources can be paged out Application resources can be larger than video memory In Window Graphics Foundation APIs only No duplication of data Either in graphics memory, system memory, or page file Basic driver model All referenced surfaces must be present for application to run Can fail if too many surfaces (WGF 2.0 can be demanding) Pages for inactive surfaces can be paged out Advanced driver model Only referenced pages need to be resident Can fault pages in on demand More efficient utilization of physical memory

Device Lost and Device Removed Virtualization eliminates “device lost” Eliminate notion of exclusive access to device However, device can be removed Low frequency, but possible Hot-plug “Device hang” followed by reset equivalent to: Removal + insertion Best to not have device hang at all (hint hint) Use to avoid reboot on driver install Remove device, add device with new driver Applications should be written to handle “device removed” events

Performance New model designed with performance in mind Hardware command streams built directly in user mode New DDIs better match for modern hardware Support for renaming and other pipelining operations Both Basic and Advanced driver models Advanced model enables maximum performance Eliminates CPU processing Validation Handle mapping, patching

Advanced Driver Model Advanced Driver Model is the Future More responsive scheduling More efficient memory management All future content protection, glitch free, etc. plans build on the Advanced Driver Model

Legacy APIs Microsoft- written code IHV-written code User Mode Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

Legacy APIs Older Direct3D immediate mode APIs supported D3DRM (retained mode) API retired Map older runtimes onto Direct3D9 DDIs e.g., runtimes ≤ Direct3D8 Fixed-function onto shaders, etc Direct3D9 interface matches DirectX 9.0c Device removed maps to device lost Memory virtualization “partially hidden” from Direct3D9 Application limited to size of video memory Avoids breaking existing applications Port to WGF 1.0 for full virtualization

Windows Graphics Foundation 1.0 Microsoft- written code IHV-written code Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

Windows Graphics Foundation 1.0 Enhanced version of Direct3D9 Also known as “DX9.L” Cross-process shared surfaces “Unlimited memory” All memory resources are “managed” Creation fails when run out of pagefile Resource management controls Prioritization of resources Antialiased text rendering support Monochrome texture filter with large kernel size More accurate gamma control Extended, higher resolution gamma tables Still support legacy 256x3 table for GDI No more “device lost”

OpenGL Microsoft- written code IHV-written code User Mode Kernel Mode Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

OpenGL Continue OpenGL support Important component of the Windows platform, particularly for high-end workstation applications In-box hardware accelerated version of OpenGL Uses WGF 1.0 as common graphics pipeline Upgraded API support compared to XP OpenGL 1.4 Continue to support OpenGL ICDs Can be shipped by OEMs New ICDs required for LDDM Old XP ICDs work with XP driver model in Longhorn

Desktop Window Manager New desktop presentation built using Avalon and DirectX Uses new WGF 1.0 interfaces Desktop Window Manager (DWM) Composited desktop Window movement without repainting underlying windows No more dragging garbage Client areas from applications GDI, Direct3D, Windows Graphics Foundation, Avalon 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 Direct3D9 shaders For non-client areas, transitions Animated transitions, etc. New WGF 1.0 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 Avalon Application WGF/DX Application GDI Application surface surface surface Desktop Window Manager

Full-Screen Exclusive, Multimon, and DWM So, what happens to full-screen exclusive? Replaced with exclusive output control Full-screen application owns the display output Video mode, gamma, etc. Desktop window manager disappears Other applications can continue to run Doesn’t trigger device lost, etc. 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

Content Protection Microsoft- written code IHV-written code User Mode Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

Content Protection Preparing the PC for HD-DVD Prevent “high-value” content from escaping Work with content providers on protection rules Two areas of protection While content being processed on CPU While content being transmitted to GPU and processed on GPU Supported by Protected Media Path (PMP) and Protected Video Path (PVP)

Protected Video Path Protection requirements Ensure that graphics device is trusted Driver authenticates graphics chip, OS authenticates driver Protect content transmitted to graphics card Special case for data crossing a “user-accessible bus” (UAB) Encrypt content crossing UABs with an approved cipher E.g., AES128 in counter mode Encryption requires initialization using Diffie-Hellman algorithm Protect content transmitted from graphics card to display device Use “standard” output protection mechanisms (HDCP, etc) Control using Output Protection Manager (OPM)

Protected Video Path Roadmap Non-UAB systems planned for Longhorn: Small set of driver DDIs Driver authentication OPM Updates to DirectX Video Acceleration (DXVA) Authentication of cross-process shared surfaces Basic driver model UAB systems require Advanced driver model Support for paging with encrypted transfers New DDIs Initialization, encrypted transfers, key management, paging

Glitch-Free Media Support Microsoft- written code IHV-written code Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

Glitch-Free Media Support Multi-faceted plans to address causes of glitches Several graphics-related initiatives Memory, scheduler controls Statistics & feedback Video sync & flip counts with timestamps Method to calibrate GPU timestamps against CPU timestamps Compute current frame being displayed Hardware “flip” buffering Hardware-supported “flip queue” Allow playback to get several frames ahead Provide elasticity to cover unexpected delays Hardware support eliminates all software delays Comes at “modest” increase in latency Comes at a cost in additional memory

Windows Graphics Foundation 2.0 Microsoft- written code IHV-written code Avalon/DWM WGF 2.0 Legacy D3D APIs DX VA D3D9 WGF 1.0 OpenGL32 OpenGL ICD Common pipeline OGL→D3D User-Mode Driver User Mode Kernel Mode DXG Kernel Kernel-Mode Driver

Windows Graphics Foundation 2.0 Next Version of Direct3D Supported in Longhorn Proposed Gold Logo requirement Major improvements in Hardware consistency Clearest, most detailed specification Elimination of capability bits Programmer expressiveness Unified shader programming model More capable shader unit Flexible memory model New pipeline stages LDDM + WGF 2.0 are fundamental improvement to the Windows Gaming Platform

Windows Graphics Foundation 2.0 Performance improvements Applications limited by state change performance LDDM helps by eliminating extra processing WGF 2.0 refactors state for efficient management Enable GPU processing without CPU intervention More flexible memory model Stream output from middle of pipeline Feedback to front of pipeline, with predication Efficiency improvements Multiple samples from textures, integer addressing Compact surface formats (scenario-specific) HDR, normal map compression, … Arrayed resources

Windows Graphics Foundation 2.0 Geometry shader stage “Sees” entire primitive (3 vertices of triangle) Can have adjacent vertices too (6 vertices total) Limited amplification Extrude edges, expand points, generate shells, … Per-primitive processing Generate extra per-primitive constant data for pixel shaders Constant colors, normals, etc Compute plane equations, barycentric parameters, etc. Combine with stream output or arrayed resources Render to cube map Render multiple shadow maps

Windows Graphics Foundation 2.0 fixed programmable memory Constant Constant Constant Input Assembler Vertex Shader Geometry Shader Setup Rasterizer Pixel Shader Output Merger Sampler Sampler Stream out Sampler Vertex Buffer Index Buffer Texture Texture Stream Buffer Texture Depth Stencil Render Target Memory

Call To Action Longhorn Display Driver Basic model for Longhorn launch Future Advanced model Support Windows Graphics Foundation 2.0 Comprehensive hardware spec for next generation content Support Protected Video Path features Output protection management, for Longhorn launch Protected transfers (discrete cards) for validation in 2006 Support Glitch Free features Counters, timestamps, flip queue ASAP Advanced driver model

Community Resources Windows Hardware & Driver Central (WHDC) www.microsoft.com/whdc/default.mspx Technical Communities www.microsoft.com/communities/products/default.mspx Non-Microsoft Community Sites www.microsoft.com/communities/related/default.mspx Microsoft Public Newsgroups www.microsoft.com/communities/newsgroups Technical Chats and Webcasts www.microsoft.com/communities/chats/default.mspx www.microsoft.com/webcasts Microsoft Blogs www.microsoft.com/communities/blogs

Additional Resources Email Related Sessions directx @ microsoft.com Avalon Technologies “Advances in Display and Composition Architecture for Windows” PMP and PVP “Protected Media Path & Driver Interoperability Requirements” “Longhorn Output Content Protection” WAVE “Windows Audio Video Excellence”