/Engine/Source/Developer/TargetPlatform/Public/Interfaces/IShaderFormat.h
Compile the specified preprocessed shaders; only called if SupportsIndependentPreprocessing returns true, and the call to RequiresSecondaryCompile given the first preprocess output also returns true. The shader system will pack these outputs together in the following format: [int32 key][uint32 primary length][uint32 secondary length][full primary shader code][full secondary shader code] where "key" is the return value of the GetPackedShaderKey function (this should also be implemented by any backends which require secondary compilation and is used by the RHI to differentiate packed shader code from single shaders)
virtual void CompilePreprocessedShader ( const [FShaderCompilerInput](API\Runtime\RenderCore\FShaderCompilerInput) & Input, const [FShaderPreprocessOutput](API\Runtime\RenderCore\FShaderPreprocessOutput) & PrimaryPreprocessOutput, const [FShaderPreprocessOutput](API\Runtime\RenderCore\FShaderPreprocessOutput) & SecondaryPreprocessOutput, [FShaderCompilerOutput](API\Runtime\RenderCore\FShaderCompilerOutput) & PrimaryOutput, [FShaderCompilerOutput](API\Runtime\RenderCore\FShaderCompilerOutput) & SecondaryOutput, const [FString](API\Runtime\Core\Containers\FString) & WorkingDirectory ) const