Hi,
I could be wrong, but there might be some issues with https://github.com/EpicGames/UnrealEngine/commit/0a1a5e480501764fbeb2c12905bc58ee8a323d79
Firstly, GetTypeHash(const FPipelineCacheFileFormatPSO &Key) was modified to account for the new fields, but they are not serialized because FPipelineCacheFileFormatCurrentVersion was not updated to latest version (VariableRateShading).
There’s another issue in FShaderPipelineCacheTask::Precompile, the new VSR fields aren’t applied from the FPipelineCacheFileFormatPSO to the FGraphicsPipelineStateInitializer.
Thanks,
JB.
Hi Jean-Baptiste,
Both those points were definitely oversights, appreciate the catch here. I’ll put together a change to address these this week.
Thanks,
Christopher Fiala
Hey, awesome thanks for the quick reply, looking forward to it so that I can revert my change and integrate the official fix.
Wasn’t sure that would cover everything, but I can confirm that with both fixes it’s working on my side in 5.7.1.
Without the fix, the behavior would be a lot of “PSO from the cache was not found in the cache!” because of the FPipelineCacheFileFormatPSO->FGraphicsPipelineStateInitializer->FPipelineCacheFileFormatPSO not being equal due to both points.
Thanks,
JB.
Hi JB,
I submitted the fix in CL 48973278 on UE5/Main (incrementing FPipelineCacheFileFormatCurrentVersion and properly setting the VRS fields in FShaderPipelineCacheTask::Precompile). Thanks again for the heads up - let me know if you run into any more issues.
Thanks,
Chris