NVRHI is a C++ hardware abstraction layer for real-time GPU programming. It exposes a single vendor-neutral RHI API (defined in include/nvrhi/nvrhi.h) and implements it through D3D11, D3D12, and Vulkan backends. Applications interact with interfaces such as IDevice, ICommandList, IBuffer, ITexture, and pipeline objects, while each backend translates those calls into native graphics API operations. The library is not an application or service; its primary entry points are device factory functions like nvrhi::d3d12::createDevice, nvrhi::d3d11::createDevice, and nvrhi::vulkan::createDevice, plus an optional validation layer created through nvrhi::validation::createValidationLayer.
MethaneKit is a cross-platform graphics rendering framework that provides abstractions over DirectX 12, Vulkan, and Metal APIs. It features a layered architecture with platform-independent interfaces (RHI), platform-specific implementations, an application framework, UI components, and mathematical utilities. The framework includes tutorial applications demonstrating various graphics techniques from basic triangle rendering to compute shaders and parallel rendering. Key systems include resource management, command submission, pipeline state handling, and synchronization primitives. The codebase demonstrates modern C++ practices with extensive use of templates, PIMPL idiom, and interface-based design.