Desktop Window Manager

Slides:



Advertisements
Similar presentations
Module 3 Configuring Hardware on a Computer Running Windows XP Professional.
Advertisements

COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Android Platform Overview (1)
HARDWARE ACCELERATED WEB BROWSER Berlian Juliartha M.P Indah Yudi Suryani Wais Al Qonri H
Discovering Computers Fundamentals, Third Edition CGS 1000 Introduction to Computers and Technology Fall 2006.
®® Microsoft Windows 7 for Power Users Tutorial 2 Customizing Microsoft Windows 7.
Windows Vista. Vista Versions Minimum Requirements (to run AERO interface)  1 GHz processor  1 GB RAM (ideally need 2 GB RAM)  40 GB hard drive, 15.
Chapter 4: Configuring the Windows Vista Desktop.
Week:#14 Windows Recovery
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Check Disk. Disk Defragmenter Using Disk Defragmenter Effectively Run Disk Defragmenter when the computer will receive the least usage. Educate users.
C HAPTER 7 Microsoft Windows 7. Part1: Getting Started with Windows7 Fundamentals 7.1 What is Windows 7? It is the latest version of a series of Operating.
Desktop And Presentation Impact On Hardware Design
Advances in Display and Composition Architecture for Longhorn Kam VedBrat Lead Program Manager Windows Client Platform Team microsoft.com Microsoft.
Guide to MCSE , Second Edition, Enhanced 1 Objectives Understand and use the Control Panel applets Describe the versatility of the Microsoft Management.
Hands-On Microsoft Windows Server 2008
Operating Systems  A collection of programs that  Coordinates computer usage among users  Manages computer resources  Handle Common Tasks.
University of Management & Technology 1 Operating Systems & Utility Programs.
CMPF124 Personal Productivity with Information Technology Chapter 1 – Part 4 Introduction To Windows Operating Systems Basic Windows Admin Introduction.
Module 2 Part IV Introduction To Windows Operating Systems Basic Windows Admin Introduction To Windows Operating Systems Basic Windows Admin.
Week 2 - Friday.  What did we talk about last time?  Graphics rendering pipeline  Geometry Stage.
CHAPTER TEN AUTHORING.
به نام خدا تنظیم کننده : فرانه حدادی استاد : مهندس زمانیان تابستان 92.
Configuring System Settings Lesson 3. Skills Matrix Technology SkillObjective DomainObjective # Introducing Windows AeroConfigure and troubleshoot Windows.
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
® Microsoft Office 2010 Exploring the Basics of Microsoft Windows 7.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
Windows Vista Inside Out Ch 3: Personalizing Windows Vista Last modified am.
Windows Vista Configuration MCTS : Interface and Device Options.
1© 2009 Autodesk Hardware Shade – Presenting Your Designs Hardware and Software Shading HW Shade Workflow Tessellation Quality Settings Lighting Settings.
Jeremy Boyd - Intergen MSDN Regional Director Windows Vista Platform for the next generation of software.
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.
DISCOVERING COMPUTERS 2018 Digital Technology, Data, and Devices
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
Appendix A Introduction to Windows 7
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
- Introduction - Graphics Pipeline
Chapter Objectives In this chapter, you will learn:
Maintaining Windows Server 2008 File Services
Week 2 - Friday CS361.
Creating Desktop Video and Animation
2D GPU Platform with Hardware-Accelerated Features
Computer Graphics Lecture 32
MCTS Guide to Microsoft Windows 7
Configuring System Settings
Build /24/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Graphics Processing Unit
Chapter 6 GPU, Shaders, and Shading Languages
Building beautiful and interactive apps with HTML5 & CSS3
Bomgar Remote support software
Understanding Operating System Configurations
Ch 3: Obtaining Help and Support
The Graphics Rendering Pipeline
Understanding Theory and application of 3D
Managed DirectX Joe Gavin.
Introduction to Computers
Dayton Metro Library Computer Basics September 19, 2018
.NET and .NET Core 7. XAML Pan Wuming 2017.
Certifying graphics experiences on Windows 8
Windows xp PART 1 DR.WAFAA SHRIEF.
Dayton Metro Library Place photo here Computer Basics December 8, 2018.
UMBC Graphics for Games
Exploring the Basics of Microsoft Windows 7
Windows Virtual PC / Hyper-V
Direct2D Karolis Jodikaitis.
Computer Graphics Introduction to Shaders
Publishing image services in ArcGIS
Windows Operating System
Presentation transcript:

Desktop Window Manager Christopher Raciti 2018/19

Desktop Window Manager, what is it? Desktop Window Manager (DWM) is the window manager in Windows Vista, Windows 7, Windows 8 and Windows 10 that enables the use of hardware acceleration to render the graphical user interface of Windows. It was originally created to enable portions of the new "Windows Aero“ (a design language introduced in Windows Vista, which introduced a new look and changes to interface guidelines) user experience, which allowed for effects such as transparency, 3D window switching and more. It is also included with Windows Server 2008, but requires the "Desktop Experience" feature and compatible graphics drivers to be installed.

Window Manager A window manager is a software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Windows manager work in conjunction with the underlying graphical system (that provides required functionality) and most window managers are designed to help provide a desktop environment.

Hardware acceleration In computing, hardware acceleration is the use of computer hardware specially made to perform some functions more efficiently than is possible in software running on a general-purpose CPU. The implementation of computing tasks in hardware to decrease latency and increase throughput is known as hardware acceleration.

Hardware requirements A GPU that supports the Windows Display Driver Model (WDDM, the graphic driver architecture for video card drivers running Windows versions from Vista). Direct3D 9 Pixel Shader 2.0 Passes the Windows Aero acceptance test in the Windows Driver Kit (WDK)

How it works – Main and DirectX 9 The Desktop Window Manager is a compositing window manager (each program has a buffer in which it writes data, DWM composites each program's buffer into a final image). DWM works in different ways depending on the operating system and on the version of the graphics drivers it uses. For example in Windows 7 with WDDM 1.1 drivers, DWM just writes the program's buffer to the video RAM, because thanks to the hardware acceleration of GDI, it doesn’t need to keep a copy of the buffer in system RAM. It easily allows visual effects that string together visuals from multiple applications, such as transparency, because the compositor has access to the graphics of all applications. DWM uses DirectX 9 to perform compositing and rendering in the GPU, freeing the CPU of the task of managing the rendering (it does not affect applications painting to the off-screen buffers). DWM-agnostic rendering techniques like GDI are redirected to the buffers by rendering the user interface (UI) as bitmaps. DWM-aware rendering technologies like WPF directly make the internal data structures available in a DWM-compatible format. The window contents in the buffers are then converted to DirectX textures.

How it works – 3D surface and rendering The desktop is a full-screen Direct3D surface, with windows being represented as a mesh consisting of two adjacent (and mutually-inverted) triangles, which are transformed to represent a 2D rectangle. The texture is then mapped onto these rectangles. Window transitions are implemented as transformations of the meshes, using shader programs. With Vista, transitions are limited to the set of built-in shaders that implement the transformations. DWM only maps the primary desktop object as a 3D surface; other desktop objects, including virtual desktops, are not. Because all applications render to an off-screen buffer, they can be read off the buffer embedded in other applications as well. Since the off-screen buffer is constantly updated by the application, the embedded rendering will be a dynamic representation of the application window and not a static rendering. This is how the live thumbnail previews and Windows Flip work in Vista and Windows 7. DWM exposes a public API that allows applications to access these thumbnail representations. The size of the thumbnail is not fixed and DWM will scale them properly before returning. Windows Flip 3D does not use the public thumbnail APIs as they do not allow for directly accessing the Direct3D textures, instead, it’s implemented directly in the DWM engine.

How it works – architecture and pixel color choose The Desktop Window Manager uses Media Integration Layer (MIL), to represent the windows as composition nodes in a composition tree (desktop). Since all the windows contribute to the final image, the color of a resultant pixel can be decided by more than one window. This is used to implement effects such as per-pixel transparency. The DWM includes built-in Pixel Shader 2.0 programs which compute the color of a pixel in a window by averaging the color of the pixel as determined by the window behind it and its neighboring pixels. These shaders are used by DWM to achieve the blur effect in the window borders of windows managed by DWM, and optionally for the areas where it is requested by the application.

How it works – What happens moving windows and using full-screen applications The job of repainting and refreshing the screen when windows are moved is handled by DWM and MIL, freeing the application of the responsibility. The background data is already in the composition tree and the off-screen buffers and is directly used to render the background. In pre-Vista Windows OSs, background applications had to be requested to re-render themselves by sending them the WM_PAINT message. DWM uses double-buffered graphics to prevent flickering and tearing when moving windows. The compositing engine uses optimizations such as culling to improve performance, as well as not redrawing areas that have not changed. Because the compositor is multi- monitor aware, DWM natively supports this too. During full-screen applications, such as games, DWM does not perform window compositing and therefore performance will not appreciably decrease.

How it works – ‘Problems’ with some Windows Versions The Desktop Window Manager runs as a Windows service. It can be enabled and disabled through the Administrative Tools Control Panel item, under Services, as Desktop Window Manager Session Manager. Many of the DWM features can be controlled or accessed by an application through the DWM APIs.  On Windows 8 and Windows Server 2012, DWM is constantly used and cannot be disabled, due to the "start screen experience”. Since the DWM process is usually required to run at all times on Windows 8, users experiencing an issue with the process are seeing memory usage decrease after a system reboot. This is often the first step in a long list of troubleshooting tasks that can help. It is possible to prevent DWM from restarting temporarily in Windows 8, which causes the desktop to turn black, the taskbar grey, and break the start screen/modern apps, but desktop apps will continue to function and appear just like Windows 7 and Vista's Basic theme, based on the single-buffer renderer used by XP. Starting up Windows without DWM will not work because the lock screen requires DWM, so it can only be done on the fly, and does not have any practical purposes. Starting with Windows 10, disabling DWM in such a way will cause the entire compositing engine to break, even traditional desktop apps, due to Universal App implementations in the taskbar and new start menu. Unlike its predecessors, Windows 8 supports basic display adapters through WARP, which uses software rendering and the CPU to render the interface rather than the graphics card. This allows DWM to function without compatible drivers, but not at the same level of performance as with a normal graphics card.

DWM APIs The DWM composition APIs provides several functions for setting and querying for basic information that is used by the DWM. These APIs enable you to query and change the composition state. Additionally, you can set and query the rendering policy for different DWM window attributes. One of the signature DWM effects is a translucent and blurred non-client area. The DWM APIs enable applications to apply these effects to the client area of their top-level windows.

DWM APIs header and function examples To develop DWM, you need the “dwmapi.h” header. Some functions: -DwmDefWindowProc (Default window procedure for DWM hit testing within the non-client area) -DwmEnableBlurBehindWindow (Enables the blur effect on a specified window) -DwmEnableComposition (Enables or disables DWM composition)

DWM APIs structure examples Some structures: -_DWM_BLURBEHIND (Specifies DWM blur-behind properties. Used by the DwmEnableBlurBehindWindow function) -_DWM_PRESENT_PARAMETERS (Specifies DWM video frame parameters for frame composition. Used by the DwmSetPresentParameters function) -_MilMatrix3x2D (Specifies a 3x2 matrix that describes a transform) -_DWM_TIMING_INFO (Specifies DWM composition timing information. Used by the DwmGetCompositionTimingInfo function)

References https://docs.microsoft.com/en-us/windows/desktop/dwm/dwm-overview https://docs.microsoft.com/en-us/windows/desktop/dwm/desktop-window- manager-overviews https://docs.microsoft.com/en-us/windows/desktop/api/_dwm/ https://en.wikipedia.org/wiki/Desktop_Window_Manager https://en.wikipedia.org/wiki/Window_manager https://en.wikipedia.org/wiki/Hardware_acceleration https://en.wikipedia.org/wiki/Windows_Aero