返回调度中心
Workflow 02 / Metering

物理度量:显存守卫

DXGI 实时遥测算法与动态降级策略

Sequence / 硬件审计探测时序
            sequenceDiagram
                participant SUB as Subsystem
                participant RHI as Unreal RHI (D3D12)
                participant DX as Windows DXGI
                
                SUB->>RHI: 1. GetNativeDevice()
                RHI-->>SUB: 2. ID3D12Device Handle
                SUB->>DX: 3. QueryVideoMemoryInfo()
                DX-->>SUB: 4. 返回真实硬件 Budget & Usage
                SUB->>SUB: 5. 计算物理剩余 (AvailableMB)
                Note right of SUB: 产生物理防御决策
            
01 / 概念深度:为什么需要 DXGI 穿透?

虚幻引擎自带的显存统计通常存在帧延迟。在进行 GB 级别的 AI 预占时,我们需要微秒级的真实硬件反馈。

物理审计 (Physical Audit)

插件直接绕过 UE5 统计层,通过 DXGI 接口询问显卡驱动:“现在我如果强占 2GB,D3D 会崩溃吗?”

动态降级 (Fallback)

如果探测结果低于安全阈值(2048MB),插件会自动将 Backendgpu 强制修改为 cpu,确保游戏不闪退。

02 / 源码实战 Demo (C++)

业务层如何利用子系统的审计能力:

// 1. 在初始化前进行物理审计
int32 AvailableVRAM = ULiteRtLmSubsystem::QueryAvailableVramMB();

// 2. 注入防御逻辑
FLiteRtLmConfig Config = FLiteRtLmUnrealApi::GetAutoConfig();
if (AvailableVRAM < 2048) {
    Config.Backend = TEXT("cpu"); // 自动物理降级
}

// 3. 执行安全的显存预占
Subsystem->LoadModel(Config);