- add new fields to FShaderCompilerOutput which should be populated with the shader source and entry point name if modified by a backend compile process (in a format implementing the independent preprocessing API). this is intended to supercede "OptionalFinalShaderSource" for such shader formats, as well as being used as the source for preprocessed debug dumps when enabled.
- modify the PCD3D shader format to use these fields as intended (and so fix the debug output for pipelines which remove unused interpolators to match the final modified source).
#rb Laura.Hermanns
#preflight 64777f850848b7126dda194c
[CL 25706448 by dan elksnitis in ue5-main branch]
- keep a preprocessor-specific shared cache of loaded shader files in ANSI format similar to the one in ShaderCore but skipping the unnecessary additional load to widechar, along with the associated extra allocations and conversions, and stripping comments directly as part of the load
- for in-memory source contained in the environment, which can't use the above due to potential different contents of same-named includes across jobs, perform the widechar->ansichar conversion and comment strip in a single step rather than converting then stripping, to save an additional allocation of the full source
#rb Jason.Nadro
#rb Yuriy.ODonnell
#preflight 64775dca2e6c1a0737f6aaef
[CL 25702732 by dan elksnitis in ue5-main branch]
r.DumpGPU.Stream=1 instead allocate and reuse staging resources from its own pool, only issuing copy to staging and gpu fence rhi commands.
Then every frame it polls whether the resource staging is lockable with the GPU fence on render thread.
When ready, the render thread kicks of a background task that cakes care of resource CPU post processing and disk writing.
Once disk write is complete, the render thread polls everyframe a FEvent to know when complete and unlock the staging resource.
The staging resource is then release to staging resource pool ready to be reused for dumping another resource of the current frame.
#rb none
#jira UE-179496
#preflight 64713ebcb310540a8d8e7da3
[CL 25657285 by Guillaume Abadie in ue5-main branch]
Added GetArrayHash() for hashing arrays by their contents.
Added a new pair of keyfuncs for TSets and TMaps which allow TCHAR* keys (or TCHAR* values passed to *ByHash functions) to be hashed by FCrc::Strihash_DEPRECATED().
#rb devin.doucette
#preflight 64708e7c296b2b37c6fd894a
[CL 25647216 by steve robb in ue5-main branch]
- FRHIBatchedShaderUnbinds acts like FRHIBatchedShaderParameters but doesn't need to collect pointers.
- The context code can also avoid any attempts to access the resource since we know it's always null.
- This change will let us easily remove Unbinds for RHIs that won't need them in the future, aka after the parameter batching is done once per draw.
- This addresses the bulk of unbind performance regressions but there is still some a minor regression in the single unbind case.
#jira UE-186381
#rb jeannoe.morissette
#preflight 646d3ec9f85111e06c4b696f
[CL 25622480 by christopher waters in ue5-main branch]
- the 32 bit version could return 0 when inputs caused an overflow which caused a bad result due to the usage of FMath::Min afterwards.
#jira UE-185981
#rb Ola.Olsson
#preflight 646f6feac34463d6e84723b2
[CL 25621463 by tiago costa in ue5-main branch]
- glint can be enabled/disabled per platofm still.
- Glints are enabled by default now.
- Simplified the complexspecial path defines to only have one.
#rb none
#preflight none
#fyi charles.derousiers
[CL 25600737 by Sebastien Hillaire in ue5-main branch]
* Early out when adding uniform buffer resource entries, by checking if uniform buffer had been processed, before processing individual entries.
* Changed resource entry list from a map to an array, saving the cost of map operations adding items to it.
* Resource entries for global uniform buffers cached once at startup.
* Resource entry member names stored in an external buffer, to avoid per-entry string memory allocation overhead.
* Miscellaneous smaller optimizations -- for example, using ByHash to avoid redundant hashing and FString construction.
#jira none
#rnx
#rb jason.nadro dan.elksnitis
#preflight 646cfdbc1134ffac7034af60
[CL 25596308 by jason hoerner in ue5-main branch]
Runtime pixel formats are named PF_ASTC_<blocksize>_NORM_RG. Use texture format name ASTC_NormalRG_Precise for encoding.
[CL 25563983 by ben woodhouse in ue5-main branch]
- expose a helper function for shader file path fixup
- fix an uinintentional copy in the FindShaderFormat API
#preflight 646658dab91ab13b09c201c5
#rb Jason.Nadro
#rb Yuriy.ODonnell
#rb Jeremy.Moore
[CL 25546585 by dan elksnitis in ue5-main branch]