How To Use Stat RHI In Unreal Engine For High-Performance Rendering Analysis
The Stat RHI command in Unreal Engine provides a real-time, on-screen diagnostic overlay that exposes raw hardware interface performance metrics, specifically focusing on draw calls, memory allocation, and command buffer latency. By monitoring these metrics, developers can identify GPU-bound bottlenecks, evaluate the efficiency of their render passes, and optimize draw call counts to maintain stable frame rates across target hardware platforms.
Preparing Your Environment for Rendering Performance Audits
Before invoking diagnostic console commands, ensure your development environment is configured to produce accurate, representative data. Running performance tests in the Editor viewport often introduces overhead from editor-specific rendering features like grid lines, gizmos, and multiple viewports, which can skew your RHI (Rendering Hardware Interface) statistics.
- Hardware Requirements: A dedicated GPU that supports the target API (DirectX 12, Vulkan, or Metal) is mandatory. Testing on an integrated graphics chip will provide misleading performance data.
- Project Settings: Ensure the project is running in a shipping-like configuration or at least a Development build. Debug builds include overhead that prevents accurate RHI assessment.
- Prerequisite Knowledge: Familiarity with basic rendering pipeline concepts, such as draw calls, shader complexity, and texture streaming, is necessary to interpret the data displayed by the command.
- Duration Benchmarks: A standard diagnostic pass should last long enough to capture varied gameplay states—typically 5 to 10 minutes of active interaction—to ensure you record both idle and heavy combat or traversal sequences.
Executing and Interpreting the Stat RHI Diagnostic Workflow
Step 1: Initiating the Diagnostic Overlay
To begin the process, launch your Unreal Engine project and enter Play-In-Editor (PIE) mode or deploy a Standalone Game build. Open the console by pressing the tilde (~) key. Type stat rhi and press Enter. This triggers a visual overlay on the top left of your screen, displaying real-time metrics for your chosen RHI.
Step 2: Analyzing the Draw Call Hierarchy
Once the command is active, look for the Draw Calls field. This number represents the total number of commands sent from the CPU to the GPU. If this value consistently exceeds 2,000 to 3,000 for a desktop target, you are likely hitting a CPU-bound bottleneck.
Pro-Tip: Focus specifically on the number of Draw Calls per frame. A sudden spike during rotation indicates a specific actor or cluster of geometry is lacking proper occlusion culling or Level of Detail (LOD) settings.
Step 3: Monitoring Command List and Buffer Latency
Review the Command List statistics to see how many command buffers are being generated. High latency here often points to inefficient mesh batching or excessive material instances. If the Command List allocation grows continuously over time, you are likely experiencing a memory leak within your rendering pipeline.
Step 4: Assessing Resource Allocation and Memory Usage
Observe the memory metrics listed at the bottom of the stat rhi display. This includes texture memory usage and index/vertex buffer sizes. If you notice these numbers approaching your target VRAM budget, prioritize optimizing texture compression settings or reducing the number of high-resolution materials applied to static meshes.
Warning: Do not interpret stat rhi data while in the main Editor window. The presence of the editor UI and background asset compilation processes will produce false positives regarding performance health.
Inventory and Stat System - Unreal Engine Asset
Benchmarking Technical Parameters and Rendering Thresholds
The following table outlines the target metrics for a high-fidelity 60 FPS experience. These values are generalized for modern mid-to-high-tier PC hardware and should be adjusted based on your specific target platform limitations.
| Metric | Acceptable Range (Mid-End) | Critical Threshold (Bottleneck) | Diagnostic Significance |
|---|---|---|---|
| Draw Calls | 1,500 – 2,500 | Above 4,000 | CPU overhead limit reached |
| Primitive Count | 1M – 3M | Above 5M | GPU vertex processing strain |
| Texture Memory | 2GB – 4GB | Above 6GB | VRAM exhaustion imminent |
| RHI Latency | 2ms – 8ms | Above 16ms | Frame time budget violation |
Addressing Rendering Performance Bottlenecks
Real-world deployment often reveals discrepancies between development testing and actual hardware performance. When your stat rhi metrics indicate degradation, address the following common failure scenarios:
- Excessive Draw Call Overhead: The root cause is typically too many individual actors in the scene that cannot be batched. Fix this by implementing Hierarchical Instanced Static Meshes (HISM) or enabling Draw Call Batching in your project settings.
- VRAM Memory Spikes: This occurs when high-resolution texture streaming consumes more memory than the GPU can efficiently process. Fix this by auditing your texture compression settings, utilizing lower-resolution mipmaps, and implementing strict texture budget limits in the streaming profile.
- Fragmented Render Passes: The root cause is often overly complex materials using too many textures or nested function nodes. Fix this by simplifying material logic, reducing the number of samplers, and ensuring that your translucent materials are kept to an absolute minimum, as they are significantly more expensive than opaque rendering.
Frequently Asked Questions
Can Stat RHI be used to debug performance on mobile devices?
Yes, stat rhi is fully functional on mobile platforms, though the specific metrics will vary depending on whether you are using OpenGL ES, Vulkan, or Metal. Ensure you are running a packaged build on the actual device, as mobile performance metrics on a desktop emulator are rarely accurate.
Why does my Stat RHI data flicker or look unreadable?
Flickering often happens when multiple stat commands are active simultaneously, causing text to overlap. Use the console command stat none to clear all active stats before running stat rhi to ensure the output is clean and legible.
Does the Stat RHI overlay impact the game performance I am trying to measure?
The overlay itself has a negligible impact on rendering performance in most scenarios. However, for extremely tight frame-time analysis, the text rendering of the stats can consume a few microseconds; for absolute precision, use the Unreal Insights tool to capture data without the visual overlay overhead.
How do I log the output of Stat RHI for later analysis?
While the screen overlay is for live debugging, you can use the console command stat dumpave or record a performance capture session using Unreal Insights. This allows you to export frame-by-frame data into a CSV or a visual profile for deep-dive optimization.
Optimize Your Rendering Pipeline for Maximum Efficiency
Mastering the stat rhi tool is the first step toward achieving professional-grade frame pacing and resource management in Unreal Engine. Reach out to our technical support team today for advanced guidance on scaling your project’s rendering performance across global hardware specifications.