{"id":5821,"date":"2022-05-24T11:00:09","date_gmt":"2022-05-24T18:00:09","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/pix\/?p=5821"},"modified":"2022-06-20T08:49:54","modified_gmt":"2022-06-20T15:49:54","slug":"pix-2205-24","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/pix\/pix-2205-24\/","title":{"rendered":"PIX 2205.24: Unlocking Arm and Qualcomm development"},"content":{"rendered":"<p>Today we released PIX-2205.24, which can be downloaded <a href=\"https:\/\/devblogs.microsoft.com\/pix\/download\/\">here<\/a>. This release contains Arm64 support for PIX and a Qualcomm plugin, bringing first-class support to graphics devs who want their apps to run as well as possible on Arm-based Windows hardware.<\/p>\n<h4>PIX now runs natively on Arm64<\/h4>\n<p>With Arm-based Windows devices becoming more popular, we\u2019ve heard from developers that they needed a better solution for debugging and profiling their apps on Arm64 machines.<\/p>\n<p>We listened: with PIX being an essential part of game development, we built an Arm64 version of PIX. From this release onwards, PIX will ship an Arm64 version, letting developers run PIX on Windows run natively on Arm64 devices.<\/p>\n<h4>Qualcomm plugin rounds out Arm64 support<\/h4>\n<p>Native Arm64 support is one piece of today\u2019s announcement: we\u2019re also proud to announce that we\u2019re shipping a Qualcomm plugin along with this release. This means that developers can now expect a similar debugging and profiling experience to what they\u2019re used to on x64 machines.<\/p>\n<p>Many thanks to our partners at Qualcomm for their work on this plugin!<\/p>\n<p>The Qualcomm plugin supports many different Adreno GPUs in a variety of devices. This includes:<\/p>\n<ul>\n<li>The Adreno 685 and 690 GPUs (found in devices such as the Surface Pro X)<\/li>\n<li>The Adreno 8cx Gen 3 GPU (found in devices such as the Lenovo ThinkPad X13s)<\/li>\n<li>The Adreno 630 GPU (found in devices such as the HoloLens 2)<\/li>\n<\/ul>\n<p>Both the x64 and Arm64 PIX installers can optionally install the Qualcomm plugin. The Arm64 version of PIX will use the plugin if you are running on a Qualcomm GPU. The x64 version of PIX will only use the Qualcomm plugin if you remotely connect to an Arm64 device with a Qualcomm GPU, such as a HoloLens 2.<\/p>\n<p>The Qualcomm plugin in this version of PIX supports <a href=\"https:\/\/devblogs.microsoft.com\/pix\/hardware-counters-in-gpu-captures\/#eventlistcounters\">Event List Counters<\/a>. These are low-level Qualcomm-specific per-event counter values shown next to each GPU event in PIX\u2019s event list:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-event-list-counters.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5823\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-event-list-counters.png\" alt=\"Image qc event list counters\" width=\"624\" height=\"360\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-event-list-counters.png 624w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-event-list-counters-300x173.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p>A future version of the Qualcomm plugin will add support for <a href=\"https:\/\/devblogs.microsoft.com\/pix\/hardware-counters-in-gpu-captures\/#highfrequencycounters\">High Frequency Counters<\/a>. These are graphs of Qualcomm-specific per-event counters plotted over time. Here is an example of what these High Frequency Counters will look like:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-high-frequency-counters.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-5822\" src=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-high-frequency-counters.png\" alt=\"Image qc high frequency counters\" width=\"624\" height=\"167\" srcset=\"https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-high-frequency-counters.png 624w, https:\/\/devblogs.microsoft.com\/pix\/wp-content\/uploads\/sites\/41\/2022\/05\/qc-high-frequency-counters-300x80.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p>The new PIX plugin from Qualcomm complements PIX plugins available from AMD, Intel and NVIDIA for their GPUs. This means that Event List Counters are available in PIX on every modern GPU released by these 4 hardware vendors. It also means that High Frequency Counters will be available on all 4 vendors in the near future. Thanks to our hardware partners for making this possible.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"125\"><\/td>\n<td width=\"125\">Timing Analysis<\/td>\n<td width=\"125\">Event List Counters<\/td>\n<td width=\"125\">High Frequency Counters<\/td>\n<td width=\"125\">Wave Distribution<\/td>\n<\/tr>\n<tr>\n<td width=\"125\">AMD<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<\/tr>\n<tr>\n<td width=\"125\">Intel<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<\/tr>\n<tr>\n<td width=\"125\">NVIDIA<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<\/tr>\n<tr>\n<td width=\"125\">Qualcomm<\/td>\n<td width=\"125\">\u2713<\/td>\n<td width=\"125\">\u2713<\/td>\n<td colspan=\"2\" width=\"250\">Coming Soon<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h4>x64 on Arm64<\/h4>\n<p>Since Windows 11 supports running <a href=\"https:\/\/blogs.windows.com\/windows-insider\/2020\/12\/10\/introducing-x64-emulation-in-preview-for-windows-10-on-arm-pcs-to-the-windows-insider-program\/\">x64 applications on Arm64 devices<\/a>, it is possible to run both the x64 and Arm64 versions of PIX on an Arm64 device. Both versions of PIX come with the binaries necessary to take GPU Captures of the other architecture. However, in general we recommend using the Arm64 version of PIX on Arm64 devices, since it will be faster than the x64 version and it supports the Qualcomm plugin.<\/p>\n<h4>Known issues<\/h4>\n<p>This version of PIX, like all previous versions of PIX, calls SetStablePowerState() before collecting timing information. This means that PIX generates consistent timing information, but on some GPUs (especially mobile GPUs like Qualcomm) the stable power state may have significantly lower performance characteristics than your application might experience outside PIX. This may result in PIX showing slower performance information. We are working with Qualcomm and other IHVs to fully address this issue in a future version of PIX.<\/p>\n<h4>Feedback<\/h4>\n<p>As always, please let us know if you have feedback about this or any other release: We look at and respond to every message we get on <a href=\"https:\/\/discord.gg\/directx\">discord.gg\/directx<\/a>. And every email from when you hit the Send Feedback button goes straight to the entire PIX on Windows team.<\/p>\n<h4>Other smaller changes<\/h4>\n<ul>\n<li>Fix crash when using Shader Model 6.6 on AMD GPUs<\/li>\n<li>Update to D3D12 Agility SDK version 1.602.0<\/li>\n<li>Fix document tab flow + potential waste of screen real estate<\/li>\n<li>Fix accidental truncation of some D3D12 flags when using Export to C++<\/li>\n<li>Fix incorrect BlendOpAlpha values in the D3D State view<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Today we released PIX-2205.24, which can be downloaded here. This release contains Arm64 support for PIX and a Qualcomm plugin, bringing first-class support to graphics devs who want their apps to run as well as possible on Arm-based Windows hardware. PIX now runs natively on Arm64 With Arm-based Windows devices becoming more popular, we\u2019ve heard [&hellip;]<\/p>\n","protected":false},"author":2237,"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-5821","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pix","tag-release"],"acf":[],"blog_post_summary":"<p>Today we released PIX-2205.24, which can be downloaded here. This release contains Arm64 support for PIX and a Qualcomm plugin, bringing first-class support to graphics devs who want their apps to run as well as possible on Arm-based Windows hardware. PIX now runs natively on Arm64 With Arm-based Windows devices becoming more popular, we\u2019ve heard [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/5821","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\/2237"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/comments?post=5821"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/posts\/5821\/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=5821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/categories?post=5821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/pix\/wp-json\/wp\/v2\/tags?post=5821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}