Virtual Address Space Usage in Windows Game Development
Essay by review • February 14, 2011 • Research Paper • 1,607 Words (7 Pages) • 1,397 Views
Virtual Address Space Usage in Windows Game Development
August 2, 2007
Abstract
Windows VistaÐ'® significantly improved the way in which the operating system handles the graphic processing unit (GPU). The Windows Vista Display Driver Model (WDDM) enables better sharing of GPU resources among multiple graphics applications. The video memory manager component of WDDM virtualizes the available video memory resources for applications to use. This enables the new Windows Aero experience to run alongside other applications, such as video playback, which also use the GPU.
However, the virtualization of video memory increases the amount of virtual address space that applications use. Consequently, some applications may exhaust virtual address space when running on 32-bit Windows Vista. This paper describes the types of applications that might encounter such problems and the steps that Microsoft is taking to reduce virtual address space pressure for games running under WDDM.
This information applies for the Windows Vista operating system.
The current version of this paper is maintained on the Web at:
http://www.microsoft.com/whdc/device/display/WDDM_VA.mspx
References and resources discussed here are listed at the end of this paper.
Contents
Introduction 3
Virtual Address Space Limits in 32-Bit Windows 3
Solutions 4
Interim Solution 4
Long-Term Solution 4
Resources 5
Disclaimer
This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein.
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. 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 presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place or event is intended or should be inferred.
Ð'© 2007 Microsoft Corporation. All rights reserved.
Microsoft, DirectX, Windows, Windows NT, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Introduction
Windows VistaÐ'® significantly improved the way in which the operating system handles the graphic processing unit (GPU). The Windows Vista Display Driver Model (WDDM) enables better sharing of GPU resources among multiple graphics applications. WDDM was designed to work with both the new MicrosoftÐ'® DirectXÐ'® 10 architecture and the existing DirectX 9 and older architectures. Existing DirectX games work with both the WindowsÐ'® XP Display Driver Model (XPDM) and WDDM drivers.
In Windows XP, video memory was allocated on a "first-come, first-served" basis. If a single application used all the available video memory, other applications were completely starved. In Windows Vista, however, the video memory manager component of WDDM virtualizes the available video memory resources for applications to use. Thus, video memory is available for multiple DirectX and Desktop graphics applications that execute simultaneously. Virtualization enables the new Windows Aero experience to run alongside other applications, such as video playback, that also use the GPU.
The virtualization of video memory in WDDM uses more virtual address space within an application’s address space than previous models. For applications that already approach the limits of their address space on 32-bit systems, running under WDDM can result in the exhaustion of the address space. This paper describes the virtual address space problem on a 32-bit Windows operating system and details the steps that Microsoft is taking to reduce virtual address space pressure for games running under WDDM.
Virtual Address Space Limits in 32-Bit Windows
On modern operating systems such as Windows, applications execute within their own private virtual address space. The size of the virtual address space is typically fixed at 2 GB for 32-bit applications. The amount of virtual address space is not related to the amount of physical memory on the machine.
Every memory allocation, file mapping, or library that is loaded by an application consumes space in this virtual address space. When the application consumes all of its virtual address space, any further such operations simply fail. Although all applications should be coded to handle memory allocation failures, many applications do not recover properly from such failures and consequently become unstable or crash.
Existing games and other graphics applications often allocate
...
...