PSO collection & integration in UE5.5+

Hello,

I’m trying to integrate PSO in a UE 5.5 game, but Manually Creating Bundled PSO Caches in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community doesn’t match what the engine produces.
There are no .shk files in /PipelineCaches, but instead .ushaderbytecode & .assetinfo.json in \ShaderLibrarySource, is there any documentation somewhere about how to integrate them in a new package?

I have the same problem on UE 5.4

PSO recording is working and I’m getting multiple .upipelinecache files under Saved/CollectedPSOs. After doing a full Windows cook/package with NeedsShaderStableKeys=True, r.PSOPrecaching=1 and r.ShaderPipelineCache.Enabled=1, I still don’t get any .shk files in Metadata/PipelineCaches for the Windows target. Instead the cook only produces shader libraries under Saved/Shaders/…, for example ShaderCode–PCD3D_SM6-PCD3D_SM6.ushaderbytecode and the corresponding .assetinfo.json files in ShaderLibrarySource.

If I try to follow the docs and run

UnrealEditor-Cmd.exe -run=ShaderPipelineCacheTools expand, using my .upipelinecache files and then passing the .ushaderbytecode file where the docs expect *.shk, the commandlet just logs:

LogShaderPipelineCacheTools: Warning: No shk found or they were all empty. Nothing to do.

So it looks like the tool is still explicitly looking for .shk on PC DX12, even though newer cooks only seem to emit .ushaderbytecode plus .assetinfo.json.

I’d really appreciate if someone from Epic could clarify what the intended replacement for .shk is in 5.4/5.5 on Windows, and whether there’s an updated way to call ShaderPipelineCacheTools that uses .ushaderbytecode (and maybe .assetinfo.json), or if this is actually a regression and .shk should still be generated when following the current “Manually Creating Bundled PSO Caches” documentation.

Thank you