- A zero size now uses the source texture size adjusted to the source mip.
- Source / dest offsets and size now properly scale with each successive mip level.
- Fixed bug in reflection capture GPU copy due to inconsistent behavior.
- Deprecated GRHISupportsCopyToTextureMultipleMips which is now always true.
#rb brian.white
#preflight 627fc1af3339713c4a9800da
[CL 20224824 by zach bethel in ue5-main branch]
- New RHI command list SetTrackedAccess method for the user to supply a current whole-resource state.
- New RHI command context GetTrackedAccess method for querying the tracked access in RHIBeginTransitions / RHIEndTransitions on the RHI thread.
- Hooked RHICmdList.Transition and FRHICommandListExecutor::Transition to assign tracked state automatically.
- Refactored RDG and resource pools to use new RHI tracking.
- FRDGPooledBuffer / FRDGPooledTexture no longer contain tracked state. RDG temp-allocates state through the graph allocator instead.
- All prologue transitions are 'Unknown', and all epilogue transitions coalesce into a whole resource state.
- Implemented platform support for patching the 'before' state with the tracked state.
- Implemented various RHI validation checks:
- Asserts that the user assigned tracked state matches RHI validation tracked state, for all subresources.
- Asserts that tracked state is not assigned or queried from a parallel translation context.
- Added FRHIViewableResource and FRHIView base classes to RHI. FRHIView contains a pointer to an FRHIViewableResource. This is currently a raw pointer, but should be extended to a full reference in a later CL.
NOTE on RHI thread constraint:
Transition evaluation is now restricted to the RHI thread (i.e. no parallel translation contexts). Transitions aren't performed in parallel translate contexts anyway, so this is not a problem. If, however, we decide to refactor parallel translation to be more general, this implementation could be extended to track the state per context and update from the 'dispatch' thread.
#preflight 6233b4396666d7e753a16aaf
#rb kenzo.terelst
[CL 19513316 by zach bethel in ue5-main branch]
This change is the copy-up of work from //UE5/Dev-ParallelRendering to unify the various RHI texture types
- The separate RHI texture types (FRHITexture2D, FRHITexture2DArray, FRHITexture3D, FRHITextureCube, FRHITextureCubeArray) have been replaced with a single type: FRHITexture.
- Includes the required refactoring / fixes for the various platform RHIs.
The old texture types are still supported via typedefs, but will soon be marked deprecated. Future rendering code should make use of the FRHITexture type instead.
#jira UE-139559
#rb Mihnea.Balta
#preflight 622f3af819287beb2c3047f6
#robomerge[FN_ENGINEMERGE] DEV-NC
[CL 19371962 by Luke Thatcher in ue5-main branch]
- Adding IOpenGLDynamicRHI interface for plugins that want to touch OpenGL resources/handles directly.
- Modifying plugins that were using OpenGLDrv.h to use the interface instead.
- Removing plugin references to UE Modules and ThirdParty libraries that were only needed because they included the private RHI headers.
- Removing OpenGLDrv/Private from plugin include paths.
#jira none
#rb dmitriy.dyomin, lukas.hermanns, robert.srinivasiah
#preflight 6226442206521a56d5d99678
#robomerge FNNC
[CL 19314031 by christopher waters in ue5-main branch]
only used during PSO precompiling.
This can reduce PSO precompile times by as much as 2/3rds.
It is enabled by default, it can be disabled via Android.OpenGL.NumRemoteProgramCompileServices=0 or setting android configrule variable 'DisableProgramCompileServices' to true.
#rb chris.babcock, Dmitriy.Dyomin
[FYI] peter.sauerbrei, jack.porter
#preflight 6218decf847077002e87365b
#ROBOMERGE-OWNER: allan.bentham
#ROBOMERGE-AUTHOR: allan.bentham
#ROBOMERGE-SOURCE: CL 19147130 via CL 19147174 via CL 19148641 via CL 19148655 via CL 19160382
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19161662 by allan bentham in ue5-main branch]