UE5.5.3版本,PSOPrecaching打开后,很多绘制并未执行异步PSO编译造成卡顿

都试过了不行,并且都是XCode联调引擎跑的,细节如下:

1.r.Metal.IOSRHIThread=1打开RHI后是有变化的,之前由Draw触发的CompilePSO是RenderThread上同步执行的,现在因为打开RHI后这些PSO编译确实是异步执行了,但由Draw触发的这些Task会让RHIThread在Wait他们Complete。实际上只是多线程加速,效率提高了稍微缓解了一点,依然RHIThread有卡顿。

2.r.SkipDrawOnPSOPrecaching=1这个没啥用,开了毫无变化,Debug了下具体实现代码中:

if (bAllowSkipDrawCommand && GSkipDrawOnPSOPrecaching && PSOPrecacheResult == EPSOPrecacheResult::Active)

{

return false;

}

无法执行到里面去,因为这里的PSOPrecacheResult要么是EPSOPrecacheResult::Compelete要么是EPSOPrecacheResult::Missed,都没出现 EPSOPrecacheResult::Active