Skip to main content
Microsoft
PIX
PIX
  • Home
  • DevBlogs
    • App Center
    • Azure DevOps
    • Notification Hubs
    • Visual Studio
    • Visual Studio Code
    • Visual Studio for Mac
    • Azure Artifacts
    • Azure Boards
    • Azure Pipelines
    • Azure Repos
    • Azure Test Plans
    • DevOps
    • C++
    • Java
    • Java Blog in Chinese
    • JavaScript
    • PowerShell
    • Python
    • Q#
    • Scripting
    • TypeScript
    • Visual Basic
    • Visual C#
    • Visual F#
    • .NET
    • ASP.NET
    • NuGet
    • Xamarin
    • Apps for Windows
    • Azure Government
    • Azure SDKs
    • Bing Dev Center
    • Command Line
    • Developer Support
    • DirectX Developer Blog
    • IoT Developer
    • Math In Office
    • Microsoft Edge Dev
    • Microsoft Azure
    • Office 365 Development
    • Old New Thing
    • PAX Graph
    • PAX Media
    • PAX Windows
    • Perf and Diagnostics
    • PIX on Windows
    • Startup Developers
    • Surface Duo
    • Sustainable Software
    • Windows Search Platform
    • Azure Cosmos DB
    • Azure Data Studio
    • Azure SQL
    • Azure Synapse Analytics
    • OData
    • Revolutions R
    • SQL Server Data Tools

    GPU Memory Usage

    Timing captures can track GPU memory usage, and PIX can show how heaps and resources are created and managed with respect to the underlying GPU memory. This can be used to understand and optimize heap residency and troubleshoot performance issues caused by paging between local and non-local GPU memory.

    To capture GPU memory details, expand the Options pane for Timing Capture, make sure the Capture GPU memory usage option is enabled (it is on by default), and take a capture as described above. GPU memory information can be captured for both Immediate and Continuous timing captures.

    When you open a timing capture with GPU memory usage, you’ll see an additional top-level tab called GPU Memory Usage with three views as shown below: Events, Resources & Heaps, and Timeline.

    The Events view should already be familiar, but it includes a new drop-down called Event Category. If you select the new Memory option, PIX lists all the memory events. This shows when heaps are created, made resident and so forth.

    The Resources & Heaps view lets you inspect all the tracked resources and heaps in the capture. Named heaps and resources can easily be located using the Filter option. The Residency column provides a quick overview of the residency status of each heap during the capture making it easy to spot heaps that changed residency or were never resident during the capture. Similarly, the Resources column shows the number of resources per heap making it easy to discover heaps with no resources in them. By default, PIX also shows the history for the selected heap or resource which is useful for understanding how the heap or resource is used through the duration of the capture.

    Please note that in this release PIX only tracks D3D12 resource heaps. Additional tracking for data such as command allocators, pipeline state objects, and descriptor heaps will be added in future releases of PIX.

    Finally, the Timeline shows a number of graphs and timelines for various GPU metrics and events from the set listed below.

    • Local GPU Memory tracks amount of memory Budget, Commitment, and Usage the application asked to be placed in local memory segments.
    • Non-Local GPU Memory tracks amount of memory Budget, Commitment, and Usage the application asked to be placed in non-local memory segments.
    • Demoted GPU Memory shows demoted heaps and resources per priority category (Min, Low, Normal, High, and Max). For more information on residency priorities see the Residency section of Memory Management in Direct3D 12.
    • Created shows when the heaps are created.
    • Destroyed shows when the actual allocated heaps are destroyed.
    • Evict shows the evict operation(s) corresponding to individual ID3D12Device::Evict calls.
    • MakeResident shows the make resident operation(s) corresponding to individual ID3D12Device::MakeResident calls.
    • Paging (Local to NonLocal) shows memory transferred from Local GPU memory to non-local GPU memory.
    • Paging (NonLocal to Local) shows memory transferred from non-local GPU memory to local GPU memory.

    Keep in mind, that the default behavior of PIX is to only show lanes that contain data, so for example if you don’t see the Destroyed lane that means that no heaps were destroyed during the capture. To show or hide additional lanes use the Settings option.

    It is not uncommon to only see a limited number of heaps on the Created timeline. This just means that the other captured heaps were created prior to starting the capture. These heaps still show up in the Resources & Heaps view, and PIX can show their attributes and usage, but is not able to identify when they were created.

    Relevant Links
    • Download
    • Documentation
    • Known Issues
    • Videos
    • Support
    • WinPixEventRuntime
    • Roadmap
    Top Bloggers
    Steven Pratschner

    Steven Pratschner
    Program Manager

    Avatar

    Morgan Grobin
    Program Manager

    Austin Kinross

    Austin Kinross
    Developer

    Damyan Pepper

    Damyan Pepper
    Dev Lead

    Jeff Noyle

    Jeff Noyle
    Developer

    Archive
  • December 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • May 2020
  • March 2020
  • January 2020
  • December 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • December 2018
  • October 2018
  • July 2018
  • June 2018
  • March 2018
  • November 2017
  • October 2017
  • September 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • Stay informed

    Login
    Code Block
    What's new
    • Surface Duo
    • Surface Laptop Go
    • Surface Pro X
    • Surface Go 2
    • Surface Book 3
    • Microsoft 365
    • Windows 10 apps
    • HoloLens 2
    Microsoft Store
    • Account profile
    • Download Center
    • Microsoft Store support
    • Returns
    • Order tracking
    • Virtual workshops and training
    • Microsoft Store Promise
    • Financing
    Education
    • Microsoft in education
    • Office for students
    • Office 365 for schools
    • Deals for students & parents
    • Microsoft Azure in education
    Enterprise
    • Azure
    • AppSource
    • Automotive
    • Government
    • Healthcare
    • Manufacturing
    • Financial services
    • Retail
    Developer
    • Microsoft Visual Studio
    • Windows Dev Center
    • Developer Center
    • Microsoft developer program
    • Channel 9
    • Microsoft 365 Dev Center
    • Microsoft 365 Developer Program
    • Microsoft Garage
    Company
    • Careers
    • About Microsoft
    • Company news
    • Privacy at Microsoft
    • Investors
    • Diversity and inclusion
    • Accessibility
    • Security
    English (United States)
    • Sitemap
    • Contact Microsoft
    • Privacy
    • Manage cookies
    • Terms of use
    • Trademarks
    • Safety & eco
    • About our ads
    • © Microsoft 2021