GPUOpen-Tools / radeon_gpu_analyzer

The Radeon GPU Analyzer (RGA) is an offline compiler and code analysis tool for Vulkan, DirectX, OpenGL, and OpenCL.
MIT License
421 stars 55 forks source link

RGA (Radeon™ GPU Analyzer)

Radeon GPU Analyzer is a compiler and code analysis tool for Vulkan®, DirectX®, OpenGL® and OpenCL™. Using this product, you can compile high-level source code for a variety of AMD GPU and APU architectures, independent of the type of GPU/APU that is physically installed on your system.

You can use RGA to produce the following output:

The RGA package contains both a GUI app and a command-line executable.

The supported modes by the GUI app are:

The supported modes by the command-line tool are:

System Requirements

To run the tool, you would need to have the AMD Radeon Adrenalin Software (Windows) or amdgpu-pro driver (Linux) installed for all modes, except for the following "offline" modes, which are independent of the driver and hardware:

For the non-offline modes, it is strongly recommended to run with the latest drivers so that the latest compiler is used and the latest architectures can be targeted.

A specific note for Vulkan mode users:

RGA releases are packaged with the AMD Vulkan driver to enable users who run on machines without an AMD GPU or driver. This is not the case if you build the tool yourself. To enable a custom RGA build on a non-AMD machine, copy the "amdvlk" folder from an RGA release archive to your build output folder (make sure to place the folder in the same folder hierarchy as in the release archive). Please note that this is a workaround and not the recommended configuration.

Build Instructions

Building on Windows

As a preliminary step, make sure that you have the following installed on your system:

cd to the build sub-folder, and run:

python pre_build.py --qt <version of QT> --vs 2019

Where is the version of QT to be used with the script, such as 6.7.0 (default is 6.7.0).

Running the pre_build.py script will fetch all the dependencies and generate the solution file for Visual Studio. After successfully running the pre_build.py script, open RGA.sln from build\windows\vs2019 (or vs2017), and build:

Some useful options of the pre_build.py script:

If you are intending to analyze DirectX 11 shaders using RGA, copy the x64 version of Microsoft's D3D compiler to a subdirectory named "utils" under the RGA executable's directory (for example, D3DCompiler_47.dll).

-=-

If for some reason you do not want to use the pre_build.py script, you can also manually fetch the dependencies and generate the solution and project files: Start by running the fetch_dependencies.py script to fetch the solution's dependencies. To generate the solution file for VS 2019 in x64 configuration, use:

  cmake.exe -G "Visual Studio 16 2019 Win64" <full path to the RGA repo directory>

If you are intending to analyze DirectX shaders using RGA, copy the x64 version of Microsoft's D3D compiler to a subdirectory named "utils" under the RGA executable's directory (for example, D3DCompiler_47.dll).

Building on Ubuntu

Running

GUI App

Run the RadeonGPUAnalyzerGUI executable. The app provides a quickstart guide and a help manual under Help.

Command Line Executable

RGA (Radeon™ GPU Analyzer)

Radeon GPU Analyzer is a compiler and code analysis tool for Vulkan®, DirectX®, OpenGL® and OpenCL™. Using this product, you can compile high-level source code for a variety of AMD GPU and APU architectures, independent of the type of GPU/APU that is physically installed on your system.

You can use RGA to produce the following output:

The RGA package contains both a GUI app and a command-line executable.

The supported modes by the GUI app are:

The supported modes by the command-line tool are:

System Requirements

To run the tool, you would need to have the AMD Radeon Adrenalin Software (Windows) or amdgpu-pro driver (Linux) installed for all modes, except for the following "offline" modes, which are independent of the driver and hardware:

For the non-offline modes, it is strongly recommended to run with the latest drivers so that the latest compiler is used and the latest architectures can be targeted.

A specific note for Vulkan mode users:

RGA releases are packaged with the AMD Vulkan driver to enable users who run on machines without an AMD GPU or driver. This is not the case if you build the tool yourself. To enable a custom RGA build on a non-AMD machine, copy the "amdvlk" folder from an RGA release archive to your build output folder (make sure to place the folder in the same folder hierarchy as in the release archive). Please note that this is a workaround and not the recommended configuration.

Build Instructions

Building on Windows

As a preliminary step, make sure that you have the following installed on your system:

cd to the build sub-folder, and run:

python pre_build.py --qt <version of Qt> --vs 2019

Where is the version of QT to be used with the script, such as 6.7.0 (default is 6.7.0).

Running the pre_build script will fetch all the dependencies and generate the solution file for Visual Studio. After successfully running the preuild script, open RGA.sln from build\windows\vs2019 (or vs2017), and build:

Some useful options of the pre_build.py script:

If you are intending to analyze DirectX 11 shaders using RGA, copy the x64 version of Microsoft's D3D compiler to a subdirectory named "utils" under the RGA executable's directory (for example, D3DCompiler_47.dll).

-=-

If for some reason you do not want to use the pre_build.py script, you can also manually fetch the dependencies and generate the solution and project files: Start by running the FetchDependencies.py script to fetch the solution's dependencies. To generate the solution file for VS 2017 in x64 configuration, use:

cmake.exe -G "Visual Studio 16 2019 Win64" <full path to the RGA repo directory>

If you are intending to analyze DirectX shaders using RGA, copy the x64 version of Microsoft's D3D compiler to a subdirectory named "utils" under the RGA executable's directory (for example, D3DCompiler_47.dll).

Building on Ubuntu

Running

GUI App

Run the RadeonGPUAnalyzerGUI executable. The app provides a quickstart guide and a help manual under Help.

Command Line Executable

Run the rga executable.

Support

For support, please visit the RGA repository github page: https://github.com/GPUOpen-Tools/RGA

Style and Format Change

The source code of this product is being reformatted to follow the Google C++ Style Guide https://google.github.io/styleguide/cppguide.html

In the interim you may encounter a mix of both an older C++ coding style, as well as the newer Google C++ Style.

Please refer to the _clang-format file in the root directory of the product for additional style information.

License

Radeon GPU Analyzer is licensed under the MIT license. See the License.txt file for complete license information.

Copyright information

Please see RGA_NOTICES.txt for copyright and third party license information.