A cross-platform abstraction layer for Direct3D 11/12 and Vulkan with automatic resource management and validation.
NVRHI is a cross-platform graphics API abstraction layer developed by NVIDIA that provides a unified interface for Direct3D 11, Direct3D 12, and Vulkan. It solves the problem of maintaining separate rendering codebases for different graphics APIs by offering automatic resource management, state tracking, and validation while maintaining direct access to underlying APIs when needed.
Graphics engineers and game developers working on cross-platform rendering engines who need to support multiple graphics APIs without rewriting their rendering code for each one.
Developers choose NVRHI because it provides a production-ready abstraction layer with minimal overhead, comprehensive validation tools, and is battle-tested in NVIDIA's own SDKs and demos, ensuring reliability and performance.
NVRHI (NVIDIA Rendering Hardware Interface) is a C++ library that provides a unified interface across multiple graphics APIs, enabling developers to write rendering code once and deploy it on Direct3D 11, Direct3D 12, and Vulkan. It simplifies low-level graphics programming by handling complex API-specific details while maintaining high performance and flexibility.
NVRHI aims to reduce the complexity of multi-API graphics development by providing a clean, efficient abstraction that doesn't sacrifice performance or direct control when needed.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tracks resource states, barriers, and lifetimes with deferred safe destruction, reducing boilerplate code and common errors, as highlighted in the key features for simplified low-level programming.
Provides a unified interface for Direct3D 11, 12, and Vulkan, enabling developers to write rendering code once and deploy across supported platforms, a core value proposition from the GitHub description.
Handles Graphics, Compute, Ray Tracing, and Meshlet pipelines, making it suitable for cutting-edge rendering techniques used in NVIDIA's SDKs like the RTXDI and RTXGI projects.
Includes a validation layer and resource reflection tools that simplify debugging, evidenced by its adoption in multiple NVIDIA SDKs such as the Donut Framework and RTX Path Tracing SDK.
Only supports Windows and Linux for x64/ARM64, with no support for mobile APIs or consoles, limiting its utility in broader cross-platform development beyond desktop environments.
Requires CMake configuration, submodule management, and optional dependencies like NVAPI, making initial setup more involved compared to simpler, header-only graphics libraries.
Features like NVAPI extensions and RTXMU integration are tied to NVIDIA hardware, potentially locking users into vendor-specific technologies and reducing flexibility for non-NVIDIA platforms.