*Reduces code duplication
*Enables the same ODSC flow to be used for both COTF variants
*The client will now autodetect if it should run in Zen mode or not
#rb pj.kack,per.larsson
#preflight 628c79bdf057b981ca479b3e
[CL 20344832 by CarlMagnus Nordin in ue5-main branch]
*Let the game be in full control of what is getting cooked
*Removed artificial delays when waiting for DDC operations
*No longer relies on all requests being urgent
#rnx
#preflight 620d2f80f8655681e051eded
#rb pj.kack
[CL 19032506 by CarlMagnus Nordin in ue5-main branch]
## Refactoring
- FShaderRecompileData is the de-factor data structure for holding recompile inputs/outputs (these should be separated).
- FShaderRecompileData has moved from being a CookingServer only data structure to living in ShaderCompiler (Engine runtime).
- UE::Cook::FRecompileShaderRequest was basically a duplicate struct of FShaderRecompileData. Now it just holds a FShaderRecompileData struct and a callback.
- RecompileShadersForRemote(), which previously accepted a grab bag of arguments, now just takes the FShaderRecompileData struct.
- ShaderPlatform is no longer a int32 but a EShaderPlatform to be more explicit.
- The downside to this approach is all these systems are more tightly coupled, but the sharing of code makes this easier to modify in the future.
## Bug Fixes
- recompileshaders changed would only sometimes work depending on what materials the cooking server had loaded. Now the command issued by the client will explicitly say which materials to load and compile for.
- In RecompileShadersForRemote remove the call to GetOutdatedShaderTypes because in the cooking server it doesn't work. That function only works when the shader maps exist, but in the cooking server when loading materials we do not create the maps. This creates a chicken/egg issue. Where we need to maps to determine what's out of date and to recompile...but we don't have the maps because we haven't done a compile yet.
## Features
- Display how long the shader request took on the cooking server.
- Print shader stats out at the end of recompile request.
#rb none
#jira UE-121436, UE-113113
#preflight 6196a3f0f020c4e616acff15
#ROBOMERGE-AUTHOR: jason.nadro
#ROBOMERGE-SOURCE: CL 18242119 in //UE5/Release-5.0/... via CL 18242138
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18242996 by jason nadro in ue5-release-engine-test branch]