- move uniform buffer cleanup and dead stripping into ShaderPreprocessor module's PreprocessShader function
- add "required symbols" to compiler input struct to specify additional symbols to keep during minification aside from those specified by the entrypoint; modify API such that both an entry point string and additional symbols can be specified (to avoid each backend needing to manually parse the compound RT entry point string)
- make use of ModifyShaderCompilerInput in all backends to set additional defines and required symbols on input struct up front; only use the AdditionalDefines map in cases where it's actually necessary
- remove the various per-platform defines for enabling minifier, no longer required now that this has been rolled out for all backends
- fix SCW directcompile mode; this had rotted due to pieces of the FShaderCompilerEnvironment having been added that weren't explicitly serialized to either cmdline or in the shader source. this now serializes as a base64 string written inside the USF containing all portions of the environment required for compilation (using the same serialization function as is used to write/read the SCW input file)
- use a debug flag for indicating we're in "direct compile" mode and should load the debug USF off disk, rather than the poorly named "bSkipPreprocessedCache" (this name is both inaccurate and also confusing due to the addition of the preprocessed job cache)
- modify platform "force wave32" mechanism to use a pragma directive to set a compiler define, instead of doing string replacement in the preprocessed source
- add a view version of the RT entrypoint parsing to use in preprocessing, note that other paths still need to construct fstrings due to further manipulation so keeping the FString path around too
- clean up backends manually checking the "directcompile" cmdline arg
#rb christopher.waters, Yuriy.ODonnell
#rb Chris.Waters
#rb Laura.Hermanns
[CL 30023082 by dan elksnitis in ue5-main branch]
- Changing all shader versions to Guid.
- Fixing shader version guids in shaders to not be in comments.
- Adding a shader version to RayTracingCommon.ush.
#rb dan.elksnitis, Jason.Nadro, Yuriy.ODonnell, Laura.Hermanns
[CL 29168287 by christopher waters in ue5-main branch]
- enable minifier deadstripping for OpenGL shader format; bytecode is a 100% match with this change on multiple tested projects so it seems safe to enable
- deprecate FOpenGLFrontend; nothing in available code appears to inherit from it anymore so the API appears unnecessary. this makes the OpenGL shader format more similar to others (which do not expose compilation functions as API)
#rb Jason.Nadro
#rb Laura.Hermanns
#rb Yuriy.ODonnell
[CL 27338803 by dan elksnitis in ue5-main branch]
- Remove the condition causing SCW to automatically exit after a single job if HLSLcc was used. This doesn't appear to be beneficial; HLSLcc uses a lot of memory but does not appear to leak it, so we're wasting time spinning up new processes unnecessarily here. This allows us to deprecated the associated field in the compiler output and function in IShaderFormat.
- Strip out compiler invocations stats; this was not accurate in some cases and it was decided after discussion that at this point the effort to fix the problems was not worth the utility we get from it.
#rb Jason.Nadro
#rb Laura.Hermanns
[CL 26256933 by dan elksnitis in ue5-main branch]
* Add code to all shader format back-ends to take dead code removal into account when computing the version ID
* Not enabled in Metal and OpenGL back-ends (require further testing)
#rb dan.elksnitis
#preflight 6390f1f15c5308d18c7364fb
[CL 23433448 by Yuriy ODonnell in ue5-main branch]
Reapply change that did not correctly make it into 19.01.
#rb Chris.Babcock
[FYI] Chris.Babcock
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18465602 via CL 18465606 via CL 18465616 via CL 18465618 via CL 18465694 via CL 18465699
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18465700 by jack porter in ue5-release-engine-test branch]
[REVIEW] [at]Jack.Porter
#rb Allan.Bentham
#ROBOMERGE-OWNER: chris.babcock
#ROBOMERGE-AUTHOR: chris.babcock
#ROBOMERGE-SOURCE: CL 18401734 via CL 18401750 via CL 18401764 via CL 18401786 via CL 18401802 via CL 18434826 via CL 18437068
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18437174 by chris babcock in ue5-release-engine-test branch]
This works better than full FBF and supported on most Adnroid devices. Fallback to FBF when extension is not supported
(merged from Release-Engine-Staging)
#jira UE-106962
#ROBOMERGE-SOURCE: CL 15624985 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v777-15581079)
[CL 15625000 by dmitriy dyomin in ue5-main branch]
- Filtered out a Niagara Ray tracing compute(was causing cooking problems cause of float3x4)
- Fixed GPU Scene
#jira UE-92314
#rb Jack.Porter, Dmitriy.Dyomin, Rolando.Caloca, Mihnea.Balta
#ROBOMERGE-OWNER: florin.pascu
#ROBOMERGE-AUTHOR: florin.pascu
#ROBOMERGE-SOURCE: CL 12984452 in //UE4/Release-4.25/... via CL 12984457 via CL 12984596
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)
[CL 12984603 by florin pascu in Main branch]
#rb jack.porter
[FYI] Dmitriy.Dyomin
#rnx
[FYI] carl.lloyd
#ROBOMERGE-OWNER: allan.bentham
#ROBOMERGE-AUTHOR: allan.bentham
#ROBOMERGE-SOURCE: CL 12162757 via CL 12162758 via CL 12163188
#ROBOMERGE-BOT: (v661-12148976)
[CL 12163190 by allan bentham in Main branch]