{"id":6814,"date":"2025-05-09T06:05:36","date_gmt":"2025-05-09T13:05:36","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/pix\/?p=6814"},"modified":"2025-05-09T06:05:36","modified_gmt":"2025-05-09T13:05:36","slug":"pix-2505-09","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/pix\/pix-2505-09\/","title":{"rendered":"PIX 2505.09 &#8211; Revamped UX, Improved Usability, and Many New Features"},"content":{"rendered":"<p>Today we released PIX on Windows version 2505.09, which can be downloaded <a href=\"https:\/\/devblogs.microsoft.com\/pix\/download\/\">here<\/a>.<\/p>\n<p>Since our <a href=\"https:\/\/developer.microsoft.com\/en-us\/games\/articles\/2025\/03\/gdc-2025-directx-state-of-the-union\/\">preview announcement at GDC<\/a>, we have been working hard to deliver the changes we promised and more. Today\u2019s release includes many new improvements to PIX, including big overall changes and changes specific to GPU Captures and Timing Captures. Other improvements, such as information about the PIX API preview, will be available in the coming weeks \u2013 stay tuned!<\/p>\n<p>As usual, if you have any feedback or suggestions for PIX then please get in touch! The best ways are via the <a href=\"https:\/\/discord.com\/invite\/directx\">DirectX Discord<\/a> (#pix) or via the Help-&gt;Send Feedback button in PIX.<\/p>\n<p>Improvements in this release include:<\/p>\n<p><strong>PIX Overall:<\/strong><\/p>\n<ul>\n<li><a href=\"#revamped-ux\" rel=\"noopener\">Revamped UX<\/a>, focusing on look, feature discoverability, and consistency<\/li>\n<li><a href=\"#new-layout-editor\" rel=\"noopener\">New Layout Editor<\/a>, allowing greater customization of PIX\u2019s layout than ever before<\/li>\n<li><a href=\"#directx-control-panel-settings-in-pix\" rel=\"noopener\">DirectX Control Panel Settings in PIX<\/a><\/li>\n<\/ul>\n<p><strong>GPU Captures:<\/strong><\/p>\n<ul>\n<li><a href=\"#custom-visualizer-improvements\">Custom Visualizer Improvements<\/a><\/li>\n<li><a href=\"#new-built-in-image-visualizers\">New Built-in Image Visualizers<\/a><\/li>\n<li><a href=\"#new-plugins\">New Plugins<\/a> from AMD, NVIDIA, and Qualcomm<\/li>\n<li><a href=\"#view-work-graph-resources-in-pipeline-view\">View Work Graph Resources in Pipeline View<\/a><\/li>\n<li><a href=\"#buffer-viewer-improvements\">Buffer Viewer Improvements<\/a><\/li>\n<li><a href=\"#nuri-(nonuniformresourceindexing)-misuse-detection\">NURI (NonUniformResourceIndexing) Misuse Detection<\/a><\/li>\n<\/ul>\n<p><strong>Timing Captures:<\/strong><\/p>\n<ul>\n<li><a href=\"#support-for-capturing-video-frames\">Support for Capturing Video Frames<\/a><\/li>\n<li><a href=\"#a-new-set-of-metrics-to-help-optimize-titles-on-battery-powered-devices\">A New Set of Metrics to Help Optimize Titles on Battery Powered Devices<\/a><\/li>\n<li><a href=\"#pix-events-that-take-a-d3d-context-can-now-begin-and-end-on-separate-cpu-threads\">PIX GPU Events that can start\/end on different CPU threads<\/a><\/li>\n<li><a href=\"#a-new-layout-for-defining-and-managing-budget-profiles\">A New Layout for Defining and Managing Budget Profiles<\/a><\/li>\n<li><a href=\"#additional-memory-analysis-tooling\">Additional Memory Analysis Tooling<\/a><\/li>\n<li><a href=\"#new-sublanes-in-the-timeline-that-show-cpu-usage\">New Sublanes in the Timeline that Show CPU Usage<\/a><\/li>\n<\/ul>\n<p>The release also includes many <a href=\"#misc-bug-fixes-and-improvements\" rel=\"noopener\">Misc Bug Fixes and Improvements<\/a>.<\/p>\n<h2>PIX Overall<\/h2>\n<h3>Revamped UX<\/h3>\n<p>This PIX release includes big changes to the look and feel of PIX. Our primary focus has been to improve the discoverability and intuitiveness of PIX features, and improve the overall consistency of the PIX experience. In future releases we will make smaller changes to specific areas of PIX to improve their UX too, so stay tuned for updates!<\/p>\n<p>We expect to refine this new UX over time. If you have any feedback or suggestions then please don&#8217;t hesitate to get in touch.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-connection-page.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6879\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-connection-page.png\" alt=\"2505 08 connection page image\" width=\"1456\" height=\"811\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-connection-page.png 1456w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-connection-page-300x167.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-connection-page-1024x570.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-connection-page-768x428.png 768w\" sizes=\"(max-width: 1456px) 100vw, 1456px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-capture-dark.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6880\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-capture-dark.png\" alt=\"2505 08 capture dark image\" width=\"1456\" height=\"811\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-capture-dark.png 1456w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-capture-dark-300x167.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-capture-dark-1024x570.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-capture-dark-768x428.png 768w\" sizes=\"(max-width: 1456px) 100vw, 1456px\" \/><\/a><\/p>\n<h3>New Layout Editor<\/h3>\n<p>Today\u2019s PIX release enables users to tailor their PIX workspaces more than ever before. For each capture type you can move parts of PIX around, dock them in place via drag-and-drop, scale them, and more. It will feel familiar to anyone who has used a layout system like Visual Studio\u2019s before.<\/p>\n<p><strong>Custom Layout Templates <\/strong>&#8211; Create and switch between personalized layouts for different capture types, starting from a blank or default template.<\/p>\n<p><strong>Reset Layout &#8211; <\/strong>Easily revert to your base default template or undo accidental changes.<\/p>\n<p><strong>Manage Layouts &#8211; <\/strong>Apply, rename, duplicate, or delete custom layouts for streamlined workspace management.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6882\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap.png\" alt=\"2505 08 snap image\" width=\"1453\" height=\"806\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap.png 1453w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap-300x166.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap-1024x568.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap-768x426.png 768w\" sizes=\"(max-width: 1453px) 100vw, 1453px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-6883\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap2.png\" alt=\"2505 08 snap2 image\" width=\"1456\" height=\"811\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap2.png 1456w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap2-300x167.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap2-1024x570.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/2505-08-snap2-768x428.png 768w\" sizes=\"(max-width: 1456px) 100vw, 1456px\" \/><\/a><\/p>\n<h3>DirectX Control Panel Settings in PIX<\/h3>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/directx\/d3dconfig-a-new-tool-to-manage-directx-control-panel-settings\/\">D3DConfig and DirectX Control Panel (DxCpl)<\/a> are tools to configure Direct3D debug settings. D3DConfig is the modern command-line tool that has superseded the DirectX Control Panel.<\/p>\n<p>PIX now has built-in ways to view and modify the Direct3D debug settings available in D3DConfig and DxCpl directly in Connection Settings on the connection page. Current setting values will automatically be populated when the settings panel is opened, otherwise users can also manually refresh to get the latest changes. Any changes made will automatically be applied.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704.png\"><img decoding=\"async\" class=\"alignnone wp-image-6824 \" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704-1024x747.png\" alt=\"Screenshot 2025 05 06 090704 image\" width=\"812\" height=\"592\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704-1024x747.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704-300x219.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704-768x561.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704-1536x1121.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090704.png 1640w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><\/a><\/p>\n<p>Like D3DConfig and DxCpl, only registered apps are affected by the settings so affected apps or directories should be added under Scope\/Executables List.<\/p>\n<p>To help identify when non-default settings are applied, PIX will show a notification on the connection page that lists any non-default settings.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090713.png\"><img decoding=\"async\" class=\"alignnone wp-image-6825 \" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090713-1024x310.png\" alt=\"Screenshot 2025 05 06 090713 image\" width=\"726\" height=\"220\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090713-1024x310.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090713-300x91.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090713-768x232.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090713.png 1487w\" sizes=\"(max-width: 726px) 100vw, 726px\" \/><\/a><\/p>\n<p>Any changes made via this PIX UI will be reflected in the DirectX Control Panel and D3DConfig.<\/p>\n<p>We plan to expand this PIX UI with other DirectX-related settings in the future. Stay tuned for more updates!<\/p>\n<h2><\/h2>\n<h2><span style=\"font-size: 24pt;\">GPU Captures<\/span><\/h2>\n<h3>Custom Visualizer Improvements<\/h3>\n<p>Last year <a href=\"https:\/\/devblogs.microsoft.com\/pix\/pix-2408-05\/#custom-mesh-texture-visualizers\">we announced<\/a> Custom Mesh\/Texture visualizers in PIX, a powerful way to write your own HLSL code to interpret buffers\/textures in your own way \u2013 including by reading from any resource bound to the currently-selected event!<\/p>\n<p>We have been making improvements to this feature over the past few releases, and this release is no different.<\/p>\n<p>New for this release is \u201cbuffer as buffer\u201d visualization. This lets you write a custom shader that will make your indirect data jump for you. For example, if you have a root constant that includes a descriptor heap index and a buffer offset which your game\u2019s shader will dynamically dereference, then you can now teach PIX how to do that for you via a custom buffer visualizer. This allows you to easily view the buffer data read by your shader, without you having to perform manual steps each time.<\/p>\n<p>We have also added:<\/p>\n<ul>\n<li>Root constants bind-by-name support.<\/li>\n<li>CBV &amp; UAV bind-by-name support.<\/li>\n<li>PIX_CUSTOM_VISUALIZER and PIX_CUSTOM_VISUALIZER_WINDOWS macros now defined for PIX HLSL API, to help you tell whether your shader is being used in Xbox PIX or PIX on Windows.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721.png\"><img decoding=\"async\" class=\"alignnone wp-image-6826 \" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721-1024x321.png\" alt=\"Screenshot 2025 05 06 090721 image\" width=\"839\" height=\"263\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721-1024x321.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721-300x94.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721-768x241.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721-1536x482.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090721.png 1641w\" sizes=\"(max-width: 839px) 100vw, 839px\" \/><\/a><\/p>\n<p>For details on those new additions, see <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/direct3dtools\/pix\/pix-custom-visualizers\">MS Learn documentation<\/a>.<\/p>\n<h3>New Built-in Image Visualizers<\/h3>\n<p>We have added two new built-in image visualizers to PIX too. The first is a VRS (Variable Rate Shading) visualizer, which lets you see the shading rate for any given pixel in the selected event.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6827\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730-1024x441.png\" alt=\"Screenshot 2025 05 06 090730 image\" width=\"1024\" height=\"441\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730-1024x441.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730-300x129.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730-768x331.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730-1536x661.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090730.png 1638w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>The second is a Quad Utilization visualizer, that lets you see the helper lanes created by the selected event:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6828\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739-1024x465.png\" alt=\"Screenshot 2025 05 06 090739 image\" width=\"1024\" height=\"465\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739-1024x465.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739-300x136.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739-768x348.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739-1536x697.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090739.png 1642w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h3>New Plugins<\/h3>\n<p>Today\u2019s release includes updated plugins from AMD, NVIDIA and Qualcomm. These complement the plugin from Intel that was updated recently too. Many thanks to our hardware partners for their support and work here!<\/p>\n<h4>AMD<\/h4>\n<ul>\n<li>Adds support for AMD Radeon\u2122 RX 9070 and AMD Radeon\u2122 RX 9070 XT GPUs<\/li>\n<li>Adds support for AMD Radeon\u2122 8000S Graphics APUs (aka: &#8220;Strix Halo&#8221;)<\/li>\n<li>Adds support for AMD Radeon\u2122 800M Graphics APUs (aka: &#8220;Krackan&#8221;)<\/li>\n<li>Removes support for some GCN-based devices, as they are no longer supported by the regular driver releases:\n<ul>\n<li>AMD Radeon\u2122 RX 400 series GPUs<\/li>\n<li>AMD Radeon\u2122 RX 500 series GPUs<\/li>\n<li>AMD Radeon Vega series<\/li>\n<li>AMD Radeon VII GPUs<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>NVIDIA<\/h4>\n<p>This plugin adds support for NVIDIA Blackwell GPUs, such as the RTX 5090. It also adds support for the <a href=\"https:\/\/devblogs.microsoft.com\/pix\/pix-2208-10001\/\">Power State selection feature in PIX<\/a> on NVIDIA Ampere (3000-series) GPUs and newer:<\/p>\n<h3><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090749.png\"><img decoding=\"async\" class=\"alignnone wp-image-6829\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090749-1024x240.png\" alt=\"Screenshot 2025 05 06 090749 image\" width=\"777\" height=\"182\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090749-1024x240.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090749-300x70.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090749-768x180.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-090749.png 1214w\" sizes=\"(max-width: 777px) 100vw, 777px\" \/><\/a><\/h3>\n<h4>Qualcomm<\/h4>\n<p>This plugin adds support for Qualcomm Snapdragon X Elite and Snapdragon X Plus hardware, such as those found in Surface Pro 10.<\/p>\n<h3>View Work Graph Resources in Pipeline View<\/h3>\n<p>This release adds the ability to view the resources bound to node shaders inside your Work Graph. After navigating to your DispatchGraph() event, you can select different node shaders and view its resource list. After starting analysis, you can select resources and view their contents.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359.png\"><img decoding=\"async\" class=\"alignnone wp-image-6830\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359-1024x851.png\" alt=\"Screenshot 2025 05 06 091359 image\" width=\"985\" height=\"819\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359-1024x851.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359-300x249.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359-768x638.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359-1536x1277.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091359.png 1558w\" sizes=\"(max-width: 985px) 100vw, 985px\" \/><\/a><\/p>\n<p>\u201cNode\u201d combo box lists all nodes in the graph. Selecting an entry in it will show all node resources, namely the shader, local root signature, GPU resources, and node info.<\/p>\n<p>Selecting \u201c!E\u201d option allows you to filter out all non-entrypoint nodes from the list.<\/p>\n<p>Selecting \u201cNode Info\u201d in Resources List shows you useful details about the node:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421.png\"><img decoding=\"async\" class=\"alignnone wp-image-6831\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421-1024x461.png\" alt=\"Screenshot 2025 05 06 091421 image\" width=\"982\" height=\"442\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421-1024x461.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421-300x135.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421-768x346.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421-1536x692.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091421.png 1556w\" sizes=\"(max-width: 982px) 100vw, 982px\" \/><\/a><\/p>\n<p>\u201cGather Accessed Resources\u201d doesn\u2019t currently support Work Graphs, so you won\u2019t be able to see dynamically accessed resources in the PIX UI yet. This functionality will be added in a future PIX release.<\/p>\n<h3>Buffer Viewer Improvements<\/h3>\n<p>We have made several improvements to PIX\u2019s buffer viewer and Buffer Formatter, including:<\/p>\n<ul>\n<li>Add the ability to define types using the #define macro<\/li>\n<li>Add support for templated matrices syntax<\/li>\n<li>Fix layout for NxM matrices to make it more intuitive to read values<\/li>\n<li>Improve support for float16_t values &#8211; they are now automatically populated from the shader<\/li>\n<li>Add support for int8t_4_packed types<\/li>\n<li>Fix misc offset tag bugs<\/li>\n<li>Add support for the \u201cmatrix\u201d keyword, equivalent to float4x4<\/li>\n<li>Reset the start offset after selecting different buffers<\/li>\n<li>Fix some explicit offset format bugs<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6832\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556-1024x340.png\" alt=\"Screenshot 2025 05 06 091556 image\" width=\"1024\" height=\"340\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556-1024x340.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556-300x100.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556-768x255.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556-1536x510.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091556.png 1560w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a> <a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6833\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604-1024x355.png\" alt=\"Screenshot 2025 05 06 091604 image\" width=\"1024\" height=\"355\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604-1024x355.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604-300x104.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604-768x267.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604-1536x533.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091604.png 1550w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a> <a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6834\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615-1024x340.png\" alt=\"Screenshot 2025 05 06 091615 image\" width=\"1024\" height=\"340\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615-1024x340.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615-300x100.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615-768x255.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615-1536x510.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091615.png 1555w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h3>NURI (NonUniformResourceIndexing) Misuse Detection<\/h3>\n<p>We have added a new Dr. PIX experiment titled <strong>NonUniformResourceIndex<\/strong> (NURI). If a shader attempts to access a resource declared as an array using a dynamic index, the index needs to be constant within a <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/direct3dhlsl\/hlsl-shader-model-6-0-features-for-direct3d-12#terminology\">wave<\/a>. If the index varies within a wave, then the NonUniformResourceIndex qualifier needs to be used on the index, or the results are undefined. More details can be found <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/direct3d12\/resource-binding-in-hlsl\">here<\/a>.<\/p>\n<p>To try the new experiment, first navigate to or add the Dr. PIX view. Next, select NonUniformResourceIndex from the drop-down list of experiments. Make sure analysis has already started. Finally, select Run Experiment and wait for the results.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6835\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639-1024x405.png\" alt=\"Screenshot 2025 05 06 091639 image\" width=\"1024\" height=\"405\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639-1024x405.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639-300x119.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639-768x304.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639-1536x608.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091639.png 1554w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p>This experiment instruments shaders that use dynamic indexing to access resources. If the index does not use the NonUniformResourceIndex qualifier and is found to vary within a wave, then PIX will output the details of this shader.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6836\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647-1024x134.png\" alt=\"Screenshot 2025 05 06 091647 image\" width=\"1024\" height=\"134\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647-1024x134.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647-300x39.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647-768x100.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647-1536x201.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091647.png 1553w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<p><strong>Known Caveats<\/strong><\/p>\n<ul>\n<li>Shader Model 6.0 or higher is required.<\/li>\n<li>Some shaders might fail instrumentation with the message: &#8220;Instrumentation failed for this shader stage&#8221;. This will be fixed in a future release.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-size: 24pt;\">Timing Captures<\/span><\/h2>\n<h3>Support for Capturing Video Frames<\/h3>\n<p>Timing Captures now include an option to record video frames along with the timing data.\u00a0 If the option to collect video frames is selected before a capture is taken, PIX will add a lane named\u00a0Video Frames\u00a0to the\u00a0Timeline\u00a0view.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712.png\"><img decoding=\"async\" class=\"alignnone wp-image-6837\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712-1024x610.png\" alt=\"Screenshot 2025 05 06 091712 image\" width=\"930\" height=\"554\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712-1024x610.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712-300x179.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712-768x458.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712-1536x915.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091712.png 2036w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/p>\n<h3>A New Set of Metrics to Help Optimize Titles on Battery Powered Devices<\/h3>\n<p>A new set of metrics have been added to help you optimize your title on battery powered devices such as tablets and Windows handheld gaming devices.\u00a0 These metrics are available in System Monitor, and in the Metrics, Comparison, and Budgets layouts in Timing Captures.\u00a0 Both system power metrics and per-processor metrics are provided.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091729.png\"><img decoding=\"async\" class=\"alignnone wp-image-6838\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091729-409x1024.png\" alt=\"Screenshot 2025 05 06 091729 image\" width=\"343\" height=\"859\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091729-409x1024.png 409w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091729-120x300.png 120w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091729.png 484w\" sizes=\"(max-width: 343px) 100vw, 343px\" \/><\/a><\/p>\n<h3>PIX GPU Events that can start\/end on separate CPU threads<\/h3>\n<p>Prior to this release of PIX on Windows, the PIXBeginEvent() and PIXEndEvent() calls for a PIX GPU event (i.e. an event that include a D3D12 command queue or command list) were also required to be recorded on the same CPU thread. Without this, the GPU PIX event hierarchy would look correct but the CPU PIX event hierarchy would be garbled. This was starting to become increasingly common in titles that heavily multithread their GPU recording work.<\/p>\n<p>Starting with this release, GPU PIX events can now have their PIXBeginEvent and PIXEndEvent calls happen on different CPU threads. With this change, the starting and ending times for the corresponding CPU work will be rendered differently on the CPU threads in the timeline.\u00a0 Rather than denoting the start and ends times of the CPU work with a PIX event, the start and end times are now shown as PIX CPU markers.\u00a0 Arrows showing the relationship between the start and end times are drawn between the PIX CPU markers and the corresponding PIX GPU event.<\/p>\n<p>You don&#8217;t have to update your copy of WinPixEventRuntime to make use of this new functionality. However you will have to take fresh captures with this PIX release (or later) to get it.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757.png\"><img decoding=\"async\" class=\"alignnone size-large wp-image-6839\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757-1024x672.png\" alt=\"Screenshot 2025 05 06 091757 image\" width=\"1024\" height=\"672\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757-1024x672.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757-300x197.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757-768x504.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757-1536x1008.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-091757.png 1849w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h3>A New Layout for Defining and Managing Budget Profiles<\/h3>\n<p>This release introduces the concept of Budget Profiles in Timing captures.\u00a0 A Budget Profile is a grouping of budgets defined on their respective metrics.\u00a0 A common use of Budget Profiles is to define the performance targets, or profiles, for different hardware specifications.\u00a0 For example, your studio likely has different performance targets for min-spec, mid-range and high-end PCs.\u00a0 Budget Profiles are defined and managed using a new Budgets layout.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346.png\"><img decoding=\"async\" class=\"alignnone wp-image-6840\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346-1024x618.png\" alt=\"Screenshot 2025 05 06 092346 image\" width=\"925\" height=\"558\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346-1024x618.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346-300x181.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346-768x463.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346-1536x927.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092346.png 1992w\" sizes=\"(max-width: 925px) 100vw, 925px\" \/><\/a><\/p>\n<h3>Additional Memory Analysis Tooling<\/h3>\n<p>Several new memory profiling features have been added in this release, including:<\/p>\n<ul>\n<li>A set of metrics that track working set size, page fault count and page file usage<\/li>\n<li>A new lane in the Timeline that displays the working set size, and the amount of memory allocated by the various allocators throughout the capture<\/li>\n<li>A new UI layout focused on memory analysis. This layout enables developers to analyze the memory allocations and accesses made during the capture. Developers can filter the data in various ways and find cases where memory is allocated, but then never accessed. Links to the timeline view are provided for all memory accesses.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404.png\"><img decoding=\"async\" class=\"alignnone wp-image-6841\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404-1024x640.png\" alt=\"Screenshot 2025 05 06 092404 image\" width=\"930\" height=\"581\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404-1024x640.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404-300x187.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404-768x480.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404-1536x960.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092404.png 1997w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/p>\n<h3>New Sublanes in the Timeline that Show CPU Usage<\/h3>\n<p>A sub lane is now present on thread and core lanes that show CPU usage.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427.png\"><img decoding=\"async\" class=\"alignnone wp-image-6842\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427-1024x237.png\" alt=\"Screenshot 2025 05 06 092427 image\" width=\"929\" height=\"215\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427-1024x237.png 1024w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427-300x69.png 300w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427-768x177.png 768w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427-1536x355.png 1536w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2025\/05\/Screenshot-2025-05-06-092427.png 2009w\" sizes=\"(max-width: 929px) 100vw, 929px\" \/><\/a><\/p>\n<h3>Misc Bug Fixes and Improvements<\/h3>\n<ul>\n<li>Capture reliability:\n<ul>\n<li>Improve memory usage while capturing ExecuteIndirect() at capture time, to fix reliability issues with titles that have lots of EI calls whose arg buffers live in one giant ID3D12Resource*<\/li>\n<li>Fix replay error if application uses GPU Upload Heaps on a machine that only supports GPU Upload Heaps if Developer Mode is enabled (i.e. older Windows OSes)<\/li>\n<li>Fix potential crash at capture time if app reads data out of PSO struct on one thread while another thread is compiling that PSO<\/li>\n<li>Fix potential race condition with very multithreaded root sig creation<\/li>\n<li>Fix View Instancing being disabled when flag isn&#8217;t set<\/li>\n<li>Fix capture issue caused by use of [WaveSize(n)] in Node shaders<\/li>\n<li>Fix misc issues with Generic Program capture\/replay<\/li>\n<li>Fix WorkGraphs&#8217; Local Root Arguments Table parser to handle stride == 0<\/li>\n<\/ul>\n<\/li>\n<li>General replay improvements:\n<ul>\n<li>Retrieve buffer format from external PDBs if reflection data has been stripped from the shader<\/li>\n<li>Don&#8217;t crash when starting analysis if draw is performed without a root sig<\/li>\n<li>Improve logging if PIX crashes during start analysis resource creation<\/li>\n<li>Acceleration Structure Viewer: fix FOV range clamping bug<\/li>\n<li>Event List:\u00a0Fix tree\/flat goggle<\/li>\n<li>Buffer Panel: fix column spacing bug<\/li>\n<li>DXR Invocations: fix sticky error when trying to view zero invocations in AS viewer<\/li>\n<li>Gather Accessed Resources: recompile and retry with PIX&#8217;s own HLSL compiler as necessary\n<ul>\n<li>Fixes issues with some titles that use custom DXCompiler forks<\/li>\n<\/ul>\n<\/li>\n<li>Gather Accessed Resources: make button more visible<\/li>\n<li>Shader Sources view: only load after starting analysis, since data isn\u2019t available before then<\/li>\n<li>Shader Debugging: misc shader debugging icon improvements<\/li>\n<li>Shader Debugging: robustify shader debugging against a null global root sig<\/li>\n<li>Shader Edit \u2018n\u2019 Continue: Don&#8217;t auto-refresh counters after applying edit<\/li>\n<li>Texture Viewer: Fix issue with Depth dropdown menu not populating correctly in texture viewer<\/li>\n<li>Timing Data: Fix collection when ExecuteIndirect()\u2019s MaxCommandCount is 0<\/li>\n<li>VS Output: Fix when null is passed to SetGraphicsRootSignature<\/li>\n<li>VS Output: Fix issue with if IA was changed on event immediately after the selected event<\/li>\n<li>Make sure generate full PDB option is disabled if analysis hasn&#8217;t been run<\/li>\n<li>Invert the &#8220;Enable GPU Plugins&#8221; option to be &#8220;Disable GPU Plugins&#8221;<\/li>\n<\/ul>\n<\/li>\n<li>Other GPU Capture improvements:\n<ul>\n<li>Misc Export to C++ fixes + minor improvements<\/li>\n<\/ul>\n<\/li>\n<li>Other:\n<ul>\n<li>Fix sporadic issue when taking a Timing Capture due to non-zero-inited ETW config struct<\/li>\n<li>Fix some remote capture issues with local username contains domain suffix<\/li>\n<li>Fix extra newlines being added when copying text, e.g. from the event list<\/li>\n<li>Add \u201ccopy document name\u201d to right-click menu on document tab<\/li>\n<li>Misc perf improvements in the UI, particularly in the timeline<\/li>\n<li>Make Recent Folders open File Explorer<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today we released PIX on Windows version 2505.09, which can be downloaded here. Since our preview announcement at GDC, we have been working hard to deliver the changes we promised and more. Today\u2019s release includes many new improvements to PIX, including big overall changes and changes specific to GPU Captures and Timing Captures. Other improvements, [&hellip;]<\/p>\n","protected":false},"author":137194,"featured_media":4769,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[4],"class_list":["post-6814","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pix","tag-release"],"acf":[],"blog_post_summary":"<p>Today we released PIX on Windows version 2505.09, which can be downloaded here. Since our preview announcement at GDC, we have been working hard to deliver the changes we promised and more. Today\u2019s release includes many new improvements to PIX, including big overall changes and changes specific to GPU Captures and Timing Captures. Other improvements, [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/6814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/users\/137194"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/comments?post=6814"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/6814\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/media\/4769"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/media?parent=6814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/categories?post=6814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/tags?post=6814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}