* Existing calls to CreateSceneTextureShaderParameters and similar functions use "GetSceneTexturesChecked", which allows for the possibility that they are reached in a code path where scene textures haven't been initialized, and nullptr is returned instead of asserting. The shader parameter setup functions then fill in dummy defaults for that case. The goal was to precisely match the original behavior, which queried the RDG blackboard, and gracefully handled null if scene textures weren't there. This definitely appears to occur in FNiagaraGpuComputeDispatch::ProcessPendingTicksFlush, which can be called with a dummy scene with no scene textures. In the future, I may change this so dummy defaults are filled in for FSceneTextures at construction time, so the structure is never in an uninitialized state, but I would like to set up a test case for the Niagara code path before doing that, and the checks aren't harmful in the meantime.
* I marked as deprecated global functions which query values from FSceneTexturesConfig, but they'll still work with the caveat that if you use multi-view-family rendering, the results will be indeterminate (whatever view family rendered last). There was only one case outside the scene renderer that accessed the globals (depth clear value), which I removed, noting that there is nowhere in the code where we modify the depth clear value from its global default. I would like to permanently deprecate or remove these at some point. Display Cluster is the only code that's currently using the multi-view-family code path, and as a new (still incomplete) feature, third party code can't be using it, and won't be affected.
#jira NONE
#rb chris.kulla zach.bethel mihnea.balta
#preflight 6261aca76119a1a496bd2644
[CL 19873983 by jason hoerner in ue5-main branch]
- Addresses static analysis warning: warning V610: Undefined behavior. Check the shift operator '<<'. The right operand is negative ('....' = [-1..254])
- Texture Resolution will be 1.
#rb Jeremy.Moore
#jira UE-147669
#preflight none
[CL 19587584 by Jason Nadro in ue5-main branch]
*) 'Overview' shows skin cache on/off, recompute tangents on/off
*) 'Memory' shows skin cache memory consumption per sk mesh, includes RT if sk mesh uses a separate RT entry
*) 'RayTracingLODOffset` shows RT LOD index offset from raster LOD index
#jira UE-136542
#rb jeremy.moore
#preflight 622bb12b902b7ca699df8755
[CL 19383862 by Josie Yang in ue5-main branch]
In the new uber shader setup we can just use VisualizeMode for that.
#rb jason.nadro
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 18425502 in //UE5/Release-5.0/... via CL 18425520
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)
[CL 18425528 by jeremy moore in ue5-release-engine-test branch]
- Stats were run on EngineTest and results will vary from project to project.
- Removes FComplexityAccumulatePS, FLODColorationPS, FRequiredTextureResolutionPS, FMeshTexCoordSizeAccuracyPS, FPrimitiveDistanceAccuracyPS, FMaterialTexCoordScalePS
- All shader code is now contained in DebugViewmodePixelShader.usf. Individual visualizations are contained within separate functions.
- All the C++ interface code has now been folded into a single implementation.
- Previously each implementation kept track of its name, and whether it needed local VF, if it needed material properties and needing instruction count. Since every implementation is in the same shader we need all those features. To simplify the code all this has been removed.
- We only keep track of a single FDebugViewModeInterface singleton to use for all debug modes.
#rb Graham.Wihlidal
#jira none
#preflight 61ae6bec1d6f74f2d4577fed
#ROBOMERGE-AUTHOR: jason.nadro
#ROBOMERGE-SOURCE: CL 18394421 in //UE5/Release-5.0/... via CL 18394431
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18394434 by jason nadro in ue5-release-engine-test branch]
For each pixel it shows the worst case missing mip level in all of the virtual textures sampled at that pixel.
Useful to analyze where late virtual texture page streaming is happening.
#rb ben.ingram
#preflight 615b5ecb255462000117288c
#lockdown michal.valient
#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17716764 via CL 17979410 via CL 18366649 via CL 18366731
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18366789 by jon nabozny in ue5-release-engine-test branch]
This was missed when removing the AtmosphericFog.
#rb Arciel.Rekman, Jian.Ru
#jira FORT-411963
#ROBOMERGE-OWNER: sebastien.hillaire
#ROBOMERGE-AUTHOR: sebastien.hillaire
#ROBOMERGE-SOURCE: CL 17964483 in //UE5/Release-5.0/... via CL 17964598
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main
[CL 17964608 by sebastien hillaire in ue5-release-engine-test branch]
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
==
* Added instance offset and count to primitive data, along with GetPrimitiveUniformShaderParameters() diffs
* Remaining FInstanceCullingManager& hooks through functions
* Various todo comments to address later
* Calls to (disabled for now) BuildRenderCommands()
* Mutability of FViewInfo in some spots
* Additional instance culling draw params in a few places
* EVertexInputStreamType cleanup
* UseVirtualShadowMaps() feature capability helper function
#authors ola.olsson, graham.wihlidal
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe
[CL 15092149 by graham wihlidal in ue5-main branch]
- View / InstancedView uniform buffers are now bound through RDG directly from the FViewInfo, or created on-demand for cases like jitter-free custom depth.
- Removed most of the custom persistent view uniform buffers. Left one in Lumen to be done in a later CL.
- ReflectionCapture uniform buffer is now bound at the RDG pass level.
#rb christopher.waters
[CL 14873982 by zach bethel in ue5-main branch]
This fixes tessellation, vertex displacement and to some extent translucency rendering.
#rb rolando.caloca
#jira UE-85311
#lockdown marcus.wassmer
#ROBOMERGE-SOURCE: CL 12874781 in //UE4/Release-4.25/... via CL 12874784 via CL 12874786
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v681-12776863)
[CL 12874788 by uriel doyon in Main branch]