fix: Shadow pass 接入 GPUDriven batch,实例上限提至 16384
100 背包掉帧 + 警告刷屏的根因与修复: 1. backpack.obj 有 44 个 mesh 部件,100 实体 × 44 = 4400 实例 打爆 4096 上限 → 每帧截断 + 告警刷屏。上限提至 16384 (1MB/slot),告警改一次性 2. Shadow pass 仍逐实体逐部件画(4400 draw,CPU 提交瓶颈)。 改为与 Forward 共用同一批 batch:Set0 绑 ObjectBuffer, lightVP 一次 push,44 draw 完成。shadow.vert 经 gl_InstanceIndex 从 SSBO 取模型矩阵 3. 遥测补全:Application::Run 每 120 帧输出 CPU 归属 (update/ui/render/total),Render 输出实例收集耗时—— 实测 100 背包 CPU 2.0ms/帧 GPU 0.6ms/帧 ≈ 500fps
This commit is contained in:
@@ -158,6 +158,7 @@ namespace Engine {
|
||||
std::vector<std::string> m_PassNames; // 执行序 pass 名
|
||||
std::vector<f32> m_PassGpuMs; // 最近一帧各 pass 耗时
|
||||
bool m_TimesPrimed[2] = {false, false}; // 每槽位首帧跳过读取
|
||||
f32 m_CollectMs = 0.0f; // 实例收集 CPU 耗时(遥测)
|
||||
|
||||
public:
|
||||
f32 GetExposure() const { return m_Exposure; }
|
||||
|
||||
Reference in New Issue
Block a user