Releases: GPUOpen-Tools/GPU-Reshape
v0.9.0-beta2
We’re excited to share the release of GPU Reshape Beta 2, hosting a wealth of additions and general improvements. Including, but not limited to:
- 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. - 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. - And, of course, bug fixes
You can find out more on our blog.
v0.9.0-beta1
This is the initial public release of 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.
This release includes the following features:
- 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.
You can find out more on our blog.