Skip to content

GCN ISA

Baldur Karlsson edited this page Aug 11, 2022 · 9 revisions

GCN ISA disassembly

From recent versions (at least v0.35 and above) RenderDoc supports fetching GCN ISA for shaders on all platforms and APIs, with some caveats.

This uses components from AMD's RGA which provides a standalone tool and front-end to perform the same task outside of RenderDoc.

  • Vulkan - users of Vulkan get the best experience, it will work on all platforms without any hardware or driver requirements.
  • D3D11 and D3D12 - if you have the AMD driver installed on your system, then this should work as-is. Otherwise you can make it work without an installed AMD driver or graphics card, but you need to follow the steps below as currently the driver DLL cannot be distributed with RenderDoc.
  • OpenGL - unfortunately the OpenGL support requires an actively loaded AMD driver, older than 22.7.1. This won't work if you are using another IHV, or if you're using e.g. the open source mesa driver, or if you're running a driver version 22.7.1 or newer. This is not something I can fix in RenderDoc, it is a restriction from the AMD provided disassembler.

D3D11 and D3D12 disassembly with AMD driver

The D3D11 and D3D12 disassembly requires a DLL from the AMD driver package which currently cannot be distributed with RenderDoc or provided as an optional download.

To obtain the DLL, follow these steps:

  1. Download the latest AMD driver package for Windows 10 from http://support.amd.com - the latest at time of writing is 20.4.1 here. If you download the installer for windows 7 you'll need to uncompress the DLL with expand, so avoid that.
  2. Then run the exe which will self-extract to somewhere temporary on your computer.
  3. The rest of the installer may fail if it does not detect AMD hardware on your machine, this is fine. Go to the extracted folder.
  4. Inside the folder under Config/ read the license agreement and ensure you agree to it.
  5. Go inside Packages/Drivers/Display/ and keep going down until you find the set of dlls. Currently this is under Packages/Drivers/Display/WT6A_INF/B376966.
  6. Copy atidxx64.dll (or if you're running a 32-bit build of RenderDoc then atidxx32.dll) and place it next to amdspv.exe in your plugins folder. For an installed or extracted build of RenderDoc this is in plugins/amd/isa/ in the root folder, or if you are compiling locally it will be wherever you have the plugins folder.

Local builds

If you build locally you won't have the plugins available so your disassembly won't work properly. You can either copy in the folder from a distribution, or follow the instructions in the build scripts (under util/buildscripts/) to produce a local snapshot build.

Clone this wiki locally