{"id":19732302,"url":"https://github.com/gpuopen-tools/radeon_gpu_detective","last_synced_at":"2026-02-05T23:05:42.730Z","repository":{"id":188952898,"uuid":"671972294","full_name":"GPUOpen-Tools/radeon_gpu_detective","owner":"GPUOpen-Tools","description":"Tool for post-mortem analysis of GPU crashes.","archived":false,"fork":false,"pushed_at":"2025-12-11T15:33:20.000Z","size":20062,"stargazers_count":61,"open_issues_count":7,"forks_count":4,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-12-11T20:31:42.960Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GPUOpen-Tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-28T15:21:20.000Z","updated_at":"2025-12-11T15:32:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"fd3db1bd-9324-49de-a333-f4376f09d3ce","html_url":"https://github.com/GPUOpen-Tools/radeon_gpu_detective","commit_stats":null,"previous_names":["gpuopen-tools/radeon_gpu_detective"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/GPUOpen-Tools/radeon_gpu_detective","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Tools%2Fradeon_gpu_detective","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Tools%2Fradeon_gpu_detective/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Tools%2Fradeon_gpu_detective/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Tools%2Fradeon_gpu_detective/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GPUOpen-Tools","download_url":"https://codeload.github.com/GPUOpen-Tools/radeon_gpu_detective/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPUOpen-Tools%2Fradeon_gpu_detective/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29137754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-05T23:02:30.544Z","status":"ssl_error","status_checked_at":"2026-02-05T23:02:24.945Z","response_time":65,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T00:25:39.473Z","updated_at":"2026-02-05T23:05:42.711Z","avatar_url":"https://github.com/GPUOpen-Tools.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# radeon_gpu_detective\nRGD is a tool for post-mortem analysis of GPU crashes. \n\nThe tool performs offline processing of AMD GPU crash dump files and generates crash analysis reports in text and JSON formats.\n\nTo generate AMD GPU crash dumps for your application, use Radeon Developer Panel (RDP) and follow the Crash Analysis help manual.\n\n## Build Instructions ##\nIt is recommended to build the tool using the \"pre_build.py\" script which can be found under the \"build\" subdirectory.\n\n**Steps:**\n\n``\ncd build\n``\n\n\n``\npython pre_build.py\n``\n\nThe script supports different options such as using different MSVC toolsets versions. For the list of options run the script with `-h`.\n\nBy default, a solution is generated for VS 2022. To generate a solution for a different VS version or to use a different MSVC toolchain use the `--vs` argument.\nFor example, to generate the solution for VS 2019 with the VS 2019 toolchain (MSVC 16), run:\n\n``\npython pre_build.py --vs 2019\n``\n\n## Running ##\nBasic usage (text output):\n\n``\nrgd --parse \u003cinput .rgd crash dump file\u003e -o \u003coutput text file\u003e\n``\n\nBasic usage (JSON output):\n\n``\nrgd --parse \u003cinput .rgd crash dump file\u003e --json \u003coutput JSON file\u003e\n``\n\nFor more options, run `rgd -h` to print the help manual.\n\n\n## Usage ##\nThe rgd command line tool accepts AMD driver GPU crash dump files as an input (.rgd files) and generates crash analysis report files with summarized information that can assist in debugging GPU crashes.\n\nThe basic usage is:\n\n``\nrgd --parse \u003cfull path to input .rgd file\u003e -o \u003cfull path to text output file\u003e\n``\n\nThe rgd command line tool's crash analysis output files include the following information by default:\n* System information (CPUs, GPUs, driver, OS etc.)\n* Execution marker tree for each command buffer which was in flight during the crash.\n* Summary of the markers that were in progress during the crash (similar to the marker tree, just  without the hierarchy and only including markers that were in progress).\n* Page fault summary (for crashes that were determined to be caused by a page fault)\n\nBoth text and JSON output files include the same information, in different representation. For simplicity, we will refer here to the human-readable textual output. Here are some more details about the crash analysis file's contents:\n\n### Crash Analysis File Information ###\n* Input crash dump file name: the full path to the .rgd file that was used to generate this file.\n* Input crash dump file creation time\n* RGD CLI version used\n\n### System Information ###\nThis section is titled `SYSTEM INFO` and includes information about:\n* Driver\n* OS\n* CPUs\n* GPUs\n\n### Markers in Progress ###\n\nThis section is titled `MARKERS IN PROGRESS` and contains information *only* about the execution markers that were in progress during the crash for each command buffer which was determined to be in flight during the crash. Here is the matching output for the tree below (see [EXECUTION MARKER TREE](#execution-marker-tree)):\n\n```\nCommand Buffer ID: 0x2e\n=======================\nFrame 268 CL0/DownSamplePS/CmdDraw\nFrame 268 CL0/DownSamplePS/CmdDraw\nFrame 268 CL0/DownSamplePS/CmdDraw\nFrame 268 CL0/DownSamplePS/CmdDraw\nFrame 268 CL0/DownSamplePS/CmdDraw\nFrame 268 CL0/Bloom/BlurPS/CmdDraw\n```\n\nNote that marker hierarchy is denoted by \"/\".\n\n### Execution Marker Tree ###\nThis section is titled `EXECUTION MARKER TREE` and contains a tree describing the marker status for each command buffer that was determined to be in flight during the crash.\n\nUser-provided marker strings will be wrapped in \"double quotes\". Here is an example marker tree:\n\n```\nCommand Buffer ID: 0x2e\n=======================\n[\u003e] \"Frame 268 CL0\"\n ├─[X] \"Depth + Normal + Motion Vector PrePass\"\n ├─[X] \"Shadow Cascade Pass\"\n ├─[X] \"TLAS Build\"\n ├─[X] \"Classify tiles\"\n ├─[X] \"Trace shadows\"\n ├─[X] \"Denoise shadows\"\n ├─[X] CmdDispatch\n ├─[X] CmdDispatch\n ├─[X] \"GltfPbrPass::DrawBatchList\"\n ├─[X] \"Skydome Proc\"\n ├─[X] \"GltfPbrPass::DrawBatchList\"\n ├─[\u003e] \"DownSamplePS\"\n └─[\u003e] \"Bloom\"\n    ├─[\u003e] \"BlurPS\"\n    │  ├─[\u003e] CmdDraw\n    │  └─[ ] CmdDraw\n    ├─[ ] CmdDraw\n    ├─[ ] \"BlurPS\"\n    ├─[ ] CmdDraw\n    ├─[ ] \"BlurPS\"\n    ├─[ ] CmdDraw\n    ├─[ ] \"BlurPS\"\n    ├─[ ] CmdDraw\n    ├─[ ] \"BlurPS\"\n    └─[ ] CmdDraw\n```\n\n\n#### Configuring the Execution Marker Output with RGD CLI ####\n\nRGD CLI exposes a few options that impact how the marker tree is generated:\n\n* ``--marker-src`` include a suffix tag for each node in the tree indicating its origin (the component that submitted the marker). The supported components are:\n    * [APP] for application marker.\n    * [Driver-PAL] for markers originating from PAL.\n    * [Driver-DX12] for markers originating from DXCP non-PAL code.\n\n*  ``--expand-markers``: expand all parent nodes in the tree (RGD will collapse all nodes which do not have any sub-nodes in progress as these would generally be considered \"noise\" when trying to find the culprit marker).\n\n#### Configuring the Page Fault Summary with RGD CLI ####\n\n* ``--va-timeline``: print a table with all events that impacted the offending VA, sorted chronologically (note that this is only applicable for crashes that are caused by a page fault). Since this table can be extremely verbose, and since in most cases this table is not required for analyzing the crash, it is not included by default in the output file.\n\n* ``--all-resources``: If specified, the tool's output will include all the resources regardless of their virtual address from the input crash dump file.\n\n\n#### Page Fault Summary ####\nIf the crash was determined to be caused by a page fault, a section titled `PAGE FAULT SUMMARY` will include useful details about the page fault such as:\n\n* `Offending VA`: the virtual address which triggered the page fault.\n* `Resource timeline`: a timeline of the associated resources (all resources that resided in the offending VA) with relevant events such as Create, Bind and Destroy. These events will be sorted chronologically. Each line includes:\n    * Time of event\n    * Event type\n    * Type of resource\n    * Resource ID\n    * Resource size\n    * Resource name (if named, otherwise NULL)\n* `Associated resources`: a list of all associated resources with their details, including:\n    * Resource ID\n    * Name (if named by the user)\n    * Type and creation flags\n    * Size\n    * Virtual address and parent allocation base address\n    * Commit type\n    * Resource timeline that shows all events that are relevant to this specific resource in chronological order\n\n\n*A note about time tracking:*\n\nThe general time format used by RGD is `\u003chh:mm:ss:clks\u003e` which stands for `\u003chours, minutes, seconds, CPU clks\u003e`. Beginning of time (`00:00:00.00`) is when the crash analysis session started (note that there is an expected lag between the start of the crashing process and the beginning of the crash analysis session, due to the time that takes to initialize crash analysis in the driver).\n\n## Capturing AMD GPU Crash Dump Files ##\n\n* To learn how to get started with RGD, see the [RGD quickstart guide](https://gpuopen.com/manuals/rgd_manual/rgd_manual-index/#quickstart-guide). More information can be found on the [RGD help manual](https://gpuopen.com/manuals/rgd_manual/rgd_manual-help_manual/#help-manual).\n* The complete documentation can be found in the [Radeon Developer Tool Suite archive](https://gpuopen.com/rdts-windows/) under ``help/rgd/index.html``.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpuopen-tools%2Fradeon_gpu_detective","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpuopen-tools%2Fradeon_gpu_detective","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpuopen-tools%2Fradeon_gpu_detective/lists"}