From 1c16a5c0777e26c8e2fc47bd53c55cb6279f3767 Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Mon, 27 Oct 2025 12:14:24 +0800 Subject: [PATCH] vault backup: 2025-10-27 12:14:24 --- .../RenderingPipeline/PSO Precache机制笔记.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/03-UnrealEngine/Rendering/RenderingPipeline/PSO Precache机制笔记.md b/03-UnrealEngine/Rendering/RenderingPipeline/PSO Precache机制笔记.md index 80ab5a4..85c5cc3 100644 --- a/03-UnrealEngine/Rendering/RenderingPipeline/PSO Precache机制笔记.md +++ b/03-UnrealEngine/Rendering/RenderingPipeline/PSO Precache机制笔记.md @@ -32,8 +32,25 @@ rating: ⭐ 1. 可选:使用快捷方式 -clearPSODriverCache,清空PSO。 2. 添加上述配置。 3. 执行Launch打包并且启动项目。 -4. 完成后可以在Saved/Metadata/PipelineCaches/找到打包的PSO文件,将其复制出来。 +4. 收集打包PSO:完成后可以在Saved/Metadata/PipelineCaches/找到打包的PSO文件,将其复制出来。 +5. 收集RuntimePSO:运行打包后的项目,跑测后在Saved/CollectedPSOs可以找到Runtime PSO文件,将其复制出来。 +6. 将所有收集的PSO放到一个制定的文件夹里,比如项目目录下PSOCollection,进行CommandLet`ShaderPipelineCacheTools`,之后会生成制定名称的spc文件。 +7. 回到打包后的项目在指定平台的目录文件夹(在项目的Build文件夹下的Windows、Android)中新建文件夹PipelineCaches,并将spc文件放入。 +8. 重新使用Launch打包,完成后可以在log中知道spc文件中 pso数量。 +## 将收集的PSO打包进Pak中 +```bash +Engine\Binaries\Win64\UnrealEditor-Cmd.exe -run=ShaderPipelineCacheTools expand #Run ShaderPipelineCacheTools with expand optionl +Project\PSOCollection\*.rec.upipelinecache #Use all .rec.upipelinecache files +Project\PSOCollection\*.shk #Use all .shk files +Project\PSOCollection\PSO_SKGZombies_PCD3D_SM6.spc # Output PSO to be bundled + +cmd /k #保证CMD开启 +``` + +```bash +"D:\UnrealEngine\UE_5.6\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" -run=ShaderPipelineCacheTools expand "D:\Project\Demo\PSOCollection\*.rec.upipelinecache" "D:\Project\Demo\PSOCollection\*.shk" "D:\Project\Demo\PSOCollection\PSO_Demo_PCD3D_SM6.spc" +``` # 执行链 - FGraphEventArray UPrimitiveComponent::PrecachePSOs() - void UMaterialInterface::InitDefaultMaterials()