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.
GPUReshape is a GPU debugging and instrumentation tool for DirectX 12 and Vulkan APIs. It provides a modular desktop application with backend layers for API interception, shader analysis and transformation capabilities, resource tracking and validation systems, and a plugin-extensible architecture built with Avalonia UI. The system includes automated testing infrastructure and message-passing communication between components.
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.
Xenia is a research-grade emulator for the Xbox 360, written in C++ with a focus on accuracy and performance. It translates PowerPC (PPC) guest code into x64 machine code via a custom JIT compiler (HIR → x64 backend) and emulates the Xenos GPU using D3D12 and Vulkan backends, including shader translation from Xbox ucode to HLSL/SPIR-V. The system also emulates kernel subsystems (XAM, Xboxkrnl), audio (XMA decoding via XAudio2/SDL), input (XInput, keyboard, SDL), and the virtual file system (STFS containers, disc images, host paths). The architecture is modular with clear subsystem boundaries (base, cpu, gpu, apu, hid, kernel, vfs, ui), each with platform-specific implementations for Windows, Linux, and Android. Key entry points include the main emulator window (xenia_main.cc), the CPU processor (processor.h), the GPU graphics system (graphics_system.h), and the kernel state manager (kernel_state.h). The emulator is primarily a desktop application but includes Android support and several standalone tools for shader compilation, GPU trace analysis, and API scanning.