- Still to investigate (in no particular order):
* the override store actions
* bRenderToSceneColor - does it need to be 1 on VisionOS?
* Can we do both eyes in one pass so we don't need to store everything out just to turn around and load for right eye? Left eye goes black without storing everything out
#rb carl.lloyd, Jeff.Fisher
[CL 34501157 by josh adams in ue5-main branch]
- This was mainly used for bindless descriptor updates, where updates need to be applied to all GPU pipelines.
- Switching pipeline can change the current active breadcrumb on the new pipeline. Doing this at the bottom-of-pipe is not possible as the start/end breadcrumbs for each command list must be known at dispatch time (before execution / translation).
- Added EnqueueLambdaMultiPipe which passes an array of RHI contexts to the lambda. This generally replaces the FRHICommandListBase& which is handed down through the platform RHI.
- EnqueueLambdaMultiPipe may only be called at the top-of-pipe.
Replace RHITransfer[...]UnderlyingResource with RHIReplaceResources on FDynamicRHI / platform implementations
- Old function was always bottom-of-pipe, so couldn't call EnqueueLambdaMultiPipe. New function takes the RHICmdList and is called at top-of-pipe.
- All resource types are merged into the same function (currently buffers and raytracing geometry).
Remove use of RHILockBuffer and RHIUnlockBuffer at the bottom-of-pipe
- Since platform RHIs need to use EnqueueLambdaMultiPipe for buffer locks/unlocks, it is no longer possible to call RHILock/UnlockBuffer at the bottom-of-pipe.
- Also, buffers locked on parallel translating command lists are broken. Lock/unlock calls RHIThreadFence(true), which flags the command list for single-thread translate, however calling this at the bottom-of-pipe is too late, as the decision to dispatch the command list in parallel has already been made.
- Added checks in these functions to catch future use.
#rb zach.bethel
#jira UE-208823
[FYI] christopher.waters
[CL 32220227 by luke thatcher in ue5-main branch]
Currently disabling VT in Project Settings breaks Android SM5 renderer because shaders are missing.
By removing r.VirtualTextures=1 from the config it's now possibler to toggle it via Project Settings.
It is still possible to use VT for SM5 but have it disabled for mobile since mobile already requires an additional mobile CVar to be enabled.
#rb Dmitriy.Dyomin, Jack.Porter
#jira UE-208703
[CL 32062814 by florian penzkofer in ue5-main branch]
- Commandline in Xcode is now used, if we want Swift to set the CL, we'll have to pause the engine startup sooner
- Added auto-launch timer to the SwiftUI window for easier development (don't need to wear the VP) to debug startup crashes, etc
- Depth texture was too big, so halved the resolution of the viewports (work in progress)
- Currently asserting in XR code, or crashing in compositor services code
#rb Jeff.Fisher
#changelist validated
#virtualized
[CL 31347927 by josh adams in ue5-main branch]
New Mali Immortalis and Adreno 7xx rules now enable desktop renderer by default if it is built into the APK (that part is still off by default).
#rb Dmitriy.Dyomin, Florin.Pascu
#jira UE-182203
[CL 30638349 by florian penzkofer in ue5-main branch]
- Device profile to force Vulkan in the emulator
- Fall back to ES2 context if necessary for device detection
#jira UE-203591
#rb Florin.Pascu
[CL 30526390 by jack porter in ue5-main branch]
Required for Quest 3 MR + MetaXR plugin and newer VRS mobile foveation work.
#jira UE-193097
#rb jeff.fisher
[CL 27144967 by christopher fiala in ue5-main branch]