unreal-rendering-performance

Diagnose and optimize GPU and render-thread bottlenecks in Unreal Engine 5.8.

Updated May 28, 2023
One-click install
npx skills add https://github.com/steveulrich/ProjectB --skill unreal-rendering-performance-steveulrich
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unreal-rendering-performance
Source: https://github.com/steveulrich/ProjectB/tree/main/.cursor/skills/unreal-rendering-performance
Command: npx skills add https://github.com/steveulrich/ProjectB --skill unreal-rendering-performance-steveulrich

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Unreal Engine 5.8 projects often suffer from unexplained frame-time spikes, GPU over-budget passes, and render-thread submission bottlenecks that are hard to attribute to specific content or settings. This Skill turns profiling evidence into ranked, measurable rendering optimizations instead of guesswork-driven CVar tweaks. ## Core Features & Use Cases - Evidence-first diagnosis: Route measured symptoms (GPU pass time, draw/render thread cost, GPU memory, hitches) to the right subsystem using a diagnostic selector covering Nanite, Lumen, Virtual Shadow Maps, MegaLights, TSR, translucency, and culling. - Subsystem optimization playbooks: Apply targeted levers for resolution/screen percentage, Dynamic Resolution, materials and overdraw, LOD/HLOD, scalability groups, and device profiles, each with quality-risk and platform-scope guidance. - Use Case: Your scene runs at 22 ms GPU time on a 60 fps target. Use this Skill to identify that Shadow Depths dominates via VSM cached-page visualization, reduce foliage WPO invalidation, encode the fix in a device profile, and verify with an A/B capture at the same camera. ## Quick Start Use the unreal-rendering-performance skill to diagnose why my Unreal Engine 5.8 scene exceeds its 16.67 ms frame budget and recommend ranked optimizations.

Frequently Asked Questions about unreal-rendering-performance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I diagnose GPU bottlenecks in Unreal Engine 5?▼

Start with profilegpu or a GPU trace to identify the dominant pass, then use subsystem visualizations like Shader Complexity, Nanite Visualization, or VSM Cached Page views to locate causal content. Change one lever at a time and re-capture the identical workload to verify the delta.

How to reduce render thread and draw call cost in Unreal Engine?▼

Use stat sceneRendering, stat rhi, and the Primitive Debugger to measure primitive, section, and draw-call counts. Reduce submissions by instancing repeated meshes, applying HLOD for distant groups, setting cull distances, and removing material slots only when section submission is measured.

Does Dynamic Resolution fix CPU-bound frames in Unreal Engine?▼

No, Dynamic Resolution only reduces GPU pixel work by lowering screen percentage when frames exceed the GPU budget. It cannot recover a CPU or render-thread bottleneck, so you must first confirm the frame is GPU-bound with stat unitgraph and stat raw.

Is MegaLights production ready in Unreal Engine 5.8?▼

Yes, MegaLights is Production Ready in UE 5.8 for many dynamic shadowed local lights, with hardware ray tracing recommended. Directional Light support is opt-in and disabled by default, and quality degrades when too many important lights compete for its fixed per-pixel sample budget.

Why is my Virtual Shadow Map cost spiking during camera cuts?▼

VSM spikes come from cache invalidation caused by moving lights, deforming geometry, WPO, large bounds, and rapid disocclusion after camera cuts. Use the Cached Page and Shadow Casters visualizations to find invalidators, then tighten bounds or disable distant deformation and shadow casting.

When should I not rely on Nanite for performance?▼

Nanite does not make materials, masked overdraw, WPO, shadows, streaming, or storage free, so measure those costs separately. Preserve conventional LOD fallback for platforms lacking Nanite support, and never use triangle count alone as a performance target.