DXGI 实时遥测算法与动态降级策略
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: 产生物理防御决策
虚幻引擎自带的显存统计通常存在帧延迟。在进行 GB 级别的 AI 预占时,我们需要微秒级的真实硬件反馈。
插件直接绕过 UE5 统计层,通过 DXGI 接口询问显卡驱动:“现在我如果强占 2GB,D3D 会崩溃吗?”
如果探测结果低于安全阈值(2048MB),插件会自动将 Backend 从 gpu 强制修改为 cpu,确保游戏不闪退。
业务层如何利用子系统的审计能力:
// 1. 在初始化前进行物理审计
int32 AvailableVRAM = ULiteRtLmSubsystem::QueryAvailableVramMB();
// 2. 注入防御逻辑
FLiteRtLmConfig Config = FLiteRtLmUnrealApi::GetAutoConfig();
if (AvailableVRAM < 2048) {
Config.Backend = TEXT("cpu"); // 自动物理降级
}
// 3. 执行安全的显存预占
Subsystem->LoadModel(Config);