GPU Reshape
Attach
Instrument
Investigate
Brought to you by Miguel Petersen, Avalanche Studios Group, and AMD.
Meet GPU Reshape, a powerful tool that leverages on-the-fly instrumentation of GPU operations with instruction level validation of potentially undefined behavior.
Standalone desktop application, no integration required.
Download now - v0.9.1 Beta
- AMD|Waterfall Feature
- A brand new AMD-specific feature that reveals potential performance issues with regards to register indexing.
- NonUniformResourceIndex Validation
- Validation that descriptor indexing is uniform, or appropriately annotated with
NonUniformResourceIndex.
- Validation that descriptor indexing is uniform, or appropriately annotated with
- Per-Texel/Byte Addressing for Initialization and Concurrency
- Initialization and concurrency tracking now occurs on a per-texel/byte level for resources, greatly improving accuracy.
- Placed resource validation
- Validation that placed resources have been appropriately initialized before use.
- Improved Loops TDR detection
- No longer experimental, and features additional safe guarding against TDRs.
- Multi Device/Process
- Hook multiple graphical devices or entire process trees with ease.
- Improved shader symbols
- Includes SlimPDB support.
- Mesh Shader Support
- Full support for existing feature set against mesh shaders.
- Many bug/stability/usability fixes
GPU Reshape Beta 2 Release
The latest beta of GPU Reshape introduces a waterfall feature, NonUniformResourceIndex validation, and much more! Read on…
Benefits
Instrument and validate your applications, track down issues to the exact line of source code, and determine exactly what went wrong.
Out of the box usage requires no integration, and can be done in just a few clicks, all at interactive frame rates.
GPU Reshape supports both DirectX® 12 and Vulkan®.
Don’t miss our videos to help you get started with GPU Reshape!
GPU Reshape – Modern Shader Instrumentation and Instruction Level Validation (Digital Dragons 2024) – YouTube link
GPU Reshape is, a just-in-time instrumentation framework with instruction level validation of shaders. A deep dive into current validation methodologies, and what the future of instrumentation may hold.
GDC 2024 – Shader Instrumentation with GPU Reshape – YouTube link
This talk presents GPU Reshape, a just-in-time instrumentation framework with instruction level validation of shader operations.
Attach
Attach to running applications, potentially across network boundaries, to start instrumenting your applications.
Applications may also be launched from the toolset with the desired feature set.
Instrument
Instrument entire applications in just a few clicks.
Instrumentation may be changed on the fly, and can be specialized on a per-shader and pipeline basis. Customize your workspace as needed.
Investigate
Investigate validation errors on the exact line of source code, with, for example, the resource and coordinates accessed.
GPU Reshape is agnostic to the front-end language, such as HLSL or GLSL, as it functions solely on the instructions and associated symbols.
Requirements
Software
- .NET Desktop Runtime 8.0.7
- Visual C++ Runtimes 17: Both x64 and x86 are required. This is due to process bootstrapping operating across both 64 and 32 bit processes.
Driver
- For AMD GPUs: latest AMD Software: Adrenalin Edition™ application software driver (minimum version 23.10.2)
Supported GPUs
- All vendors supported
Supported graphics APIs
- DirectX® 12
- Vulkan®
Supported IRs
- SPIR-V
- DXIL
- DXBC (experimental)
Supported OSs
- Windows® 10
- Windows® 11
Linux® support is a planned addition.
Version history
This release includes the following features:
- AMD|Waterfall Feature
- A brand new AMD-specific feature that reveals potential performance issues with regards to register indexing.
- NonUniformResourceIndex Validation
- Validation that descriptor indexing is uniform, or appropriately annotated with
NonUniformResourceIndex.
- Validation that descriptor indexing is uniform, or appropriately annotated with
- Per-Texel/Byte Addressing for Initialization and Concurrency
- Initialization and concurrency tracking now occurs on a per-texel/byte level for resources, greatly improving accuracy.
- Placed resource validation
- Validation that placed resources have been appropriately initialized before use.
- Improved Loops TDR detection
- No longer experimental, and features additional safe guarding against TDRs.
- Multi Device/Process
- Hook multiple graphical devices or entire process trees with ease.
- Improved shader symbols
- Includes SlimPDB support.
- Mesh Shader Support
- Full support for existing feature set against mesh shaders.
- Many bug/stability/usability fixes
- First public release
- Resource Bounds
Validation of resource read / write coordinates against its bounds. - Export Stability
Numeric stability validation of floating point exports (UAV writes, render targets, vertex exports), e.g. NaN / Inf. - Descriptor Validation
Validation of descriptors, potentially dynamically indexed. This includes undefined, mismatched (compile-time to runtime), out of bounds descriptor indexing, and missing table bindings. - Concurrency Validation
Validation of resource concurrency, i.e. single-producer or multiple-consumer, between queues and events. - Resource Initialization
Validation of resource initialization, ensures any read was preceded by a write. - Infinite Loops
Detection of infinite loops. Experimental.
Additionally, certain features, such as descriptor validation and loops, can safeguard a potentially erroneous operation, preventing undefined behaviour during instrumentation. This is especially useful if the error would result in a GPU crash, limiting the application’s ability to write out useful debug information of the issue.
Related content
Vulkan Memory Allocator v3.1, with many fixes and improvements, is out now!
VMA V3.1 gathers fixes and improvements, mostly GitHub issues/PRs, including improved compatibility with various compilers and GPUs.
DirectX®12 single shader compilation with Radeon™ GPU Analyzer (RGA) v2.9.1
Radeon™ GPU Analyzer v2.9.1 now supports D3D12 shader compilation without requiring a completely defined pipeline state. RGA v2.9.1 is available now.
Radeon™ GPU Profiler 2.1 adds interoperability with Radeon™ GPU Analyzer (and more)!
RGP 2.1 adds RGA interoperability, ‘Color by’ modes, and additional customization options. Dive in for all the details!
GDC 2024: Work graphs, mesh shaders, FidelityFX™, dev tools, CPU optimization, and more.
Our GDC 2024 presentations this year include work graphs, mesh shaders, AMD FSR 3, GI with AMD FidelityFX Brixelizer, AMD Ryzen optimization, RGD, RDTS, and GPU Reshape!
Getting Started with Radeon™ GPU Detective 1.0
Radeon GPU Detective (RGD) is a brand-new tool which is designed to help you capture and investigate GPU crashes. This tutorial covers how to use RGD to capture a crash and how to interpret the results it produces.
Radeon™ GPU Detective (RGD) 1.0 is now available
Radeon™ GPU Detective (RGD) is our brand-new tool for investigating GPU crashes. RGD is included in the Radeon Developer Tool Suite and is available now!
Avalanche Studios Group and the Avalanche Studios Group logo are trademarks of the Avalanche Studios Group.
Our other tools
Radeon™ GPU Detective (RGD) is a tool for post-mortem analysis of GPU crashes. RGD can capture AMD GPU crash dumps from DirectX® 12 apps.
Radeon™ Raytracing Analyzer (RRA) is a tool which allows you to investigate the performance of your raytracing applications and highlight potential bottlenecks.
The RDP provides a communication channel with the Radeon™ Adrenalin driver. It generates event timing data used by the Radeon™ GPU Profiler (RGP), and the memory usage data used by the Radeon™ Memory Visualizer (RMV).
Radeon™ Memory Visualizer (RMV) is a tool to allow you to gain a deep understanding of how your application uses memory for graphics resources.
This is a Visual Studio® Code extension for Radeon GPU Analyzer (RGA) to allow you to use RGA directly from within VS Code.
RGP gives you unprecedented, in-depth access to a GPU. Easily analyze graphics, async compute usage, event timing, pipeline stalls, barriers, bottlenecks, and other performance inefficiencies.
If you want to know how well a game is performing on your machine in real-time with low overhead, OCAT has you covered.
Radeon GPU Analyzer is an offline compiler and performance analysis tool for DirectX®, Vulkan®, SPIR-V™, OpenGL® and OpenCL™.
Compressonator is a set of tools to allow artists and developers to more easily work with compressed assets and easily visualize the quality impact of various compression technologies.
Our other SDKs
AMD Radeon™ Anti-Lag 2 reduces the system latency by applying frame alignment between the CPU and GPU jobs.
Capsaicin is a Direct3D12 framework for real-time graphics research which implements the GI-1.0 technique and a reference path-tracer.
The Render Pipeline Shaders (RPS) SDK provides a framework for graphics engines to use Render Graphs with explicit APIs.
ADLX is a modern library designed to access features and functionality of AMD systems such as Display, 3D graphics, Performance Monitoring, GPU Tuning, and more.
Brotli-G is an open-source compression/decompression standard for digital assets (based on Brotli) that is compatible with GPU hardware.
HIP RT is a ray tracing library for HIP, making it easy to write ray tracing applications in HIP.
Orochi is a library which loads HIP and CUDA® APIs dynamically, allowing the user to switch APIs at runtime.
AMD Radeon™ ProRender is our fast, easy, and incredible physically-based rendering engine built on industry standards that enables accelerated rendering on virtually any GPU, any CPU, and any OS in over a dozen leading digital content creation and CAD applications.
Radeon™ Machine Learning (Radeon™ ML or RML) is an AMD SDK for high-performance deep learning inference on GPUs.
Harness the power of machine learning to enhance images with denoising, enabling your application to produce high quality images in a fraction of the time traditional denoising filters take.
The Advanced Media Framework SDK provides developers with optimal access to AMD GPUs for multimedia processing.
The D3D12 Memory Allocator (D3D12MA) is a C++ library that provides a simple and easy-to-integrate API to help you allocate memory for DirectX®12 buffers and textures.