Files
BlueRoseNote/03-UnrealEngine/Rendering/RenderingPipeline/PSO Precache机制笔记.md

1.5 KiB
Raw Blame History

title, date, excerpt, tags, rating
title date excerpt tags rating
PSO Precache机制笔记 2025-02-08 20:42:16

前言

BundledPSO

  • 相关启动参数
    • -logPSO
    • -clearPSODriverCache
  • 需要添加的配置
    • RendererSettings
      • r.ShaderPipelineCache.Enable=1
    • DevOptions.Shaders
      • NeedsSHaderStableKeys=true
    • /Script/UnrealEd.ProjectPackagingSettings
      • bShareMaterialShaderCode=True
      • bSharedMaterialNativeLibraries=True

大致步骤

  1. 可选:使用快捷方式 -clearPSODriverCache清空PSO。
  2. 添加上述配置。

执行链

  • FGraphEventArray UPrimitiveComponent::PrecachePSOs()
  • void UMaterialInterface::InitDefaultMaterials()
  • UMaterial::PrecachePSOs

UMaterial::PrecachePSOs => MaterialResource->CollectPSOs() => PrecacheMaterialPSOs() => PrecachePSOs() => CollectPSOs() => CollectPSOInitializers()

CollectPSOInitializers()

接口IPSOCollector::CollectPSOInitializers()

其他MeshProcessor实现