-Adds support for getting velocity and accelleration through GetControllerTransformForTime.
-Adds mechanism for using openxr chain structs which are defined in and consumed by an extension plugin.
-Support for defining a swapchain and renderbridge in an extension plugin.
-Some OpenXR fixes related to runtimes not supplying tracking data of various types. Basically if the data isn't being provided we should not copy it out because it might be full of nonsense. Also we would generally rather preserve our last cached position than overwrite with zero/identity.
-Moving OpenXRPlatformRHI.h OpenXRHMD_RenderBridge.h and _Swapchain.h back to private folder.
-Previously one could not run the same haptic effect on two devices simultaneously and have it behave correctly because most of the per-effect-play data for each effect was shared by all controllers. This refactors so that the necessary runtime data is per controller and the constant bulk data is shared by all controllers.
-Adding infrastructure for playing haptics on a VR HMD.
-Refactored haptic data resampling into the oculus plugin because that is plugin specific.
swarm reviews review-18220544 and review-18220542
#rb Robert.Srinivasiah, Jules.Blok, Steve.Smith
#ROBOMERGE-AUTHOR: jeff.fisher
#ROBOMERGE-SOURCE: CL 18271123 in //UE5/Release-5.0/... via CL 18271142
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18271147 by jeff fisher in ue5-release-engine-test branch]
around for modules that require more accessibility information such as User/Controller Id.
#rnx
#rb: Patrick.Boutot
#preflight: 617b17e05aecf4000120a61a
#ROBOMERGE-AUTHOR: leon.huang
#ROBOMERGE-SOURCE: CL 17974834 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)
[CL 17974837 by leon huang 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]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
- This is already handled in the engine loop and could lead to multiple sleeps being done (see ShouldThrottleCPUUsage).
#rb Francis.Hurteau, Matt.Kuhlenschmidt
#ROBOMERGE-AUTHOR: danny.couture
#ROBOMERGE-SOURCE: CL 17660067 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)
[CL 17660082 by danny couture in ue5-release-engine-test branch]
Change FPlatformUserId into a proper struct with an internal id that will be allocated by the platform
Converting int->FPlatformUserId is currently deprecated, but the other direction is not deprecated until the online/input code can be converted
GenericApplicaitonMessageHandler will convert back and forth between controller Id and FPlatformUserId as needed
Add support for platform user id to LocalPlayer, by default it is synchronized with ControllerId
#rb david.harvey, ben.hoffman
#ROBOMERGE-AUTHOR: ben.zeigler
#ROBOMERGE-SOURCE: CL 17597808 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)
[CL 17597827 by ben zeigler in ue5-release-engine-test branch]
the Windows UIA dll is used.
#rnx
#rb: David.Harvey
#preflight: 614470ce81695600012d14f9
[FYI] Jason.Stasik
#ROBOMERGE-AUTHOR: leon.huang
#ROBOMERGE-SOURCE: CL 17558697 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17558711 by leon huang in ue5-release-engine-test branch]
This is a defensive change to more uniformly gate conditions of various pathways that want to "nice" CPU consumption when the application is not the foreground application (doesn't "Have Focus"). In benchmarking scenarios we don't want a focus-grabbing application to cause change in behavior while taking performance measurements. This could be in local workstation benchmarking where other foreground apps will naturally come to the front or in data center build where antics that might otherwise be completely unknowable could impact benchmark measurements.
This change was formulated after finding some "nice" CPU conditionals that were instrumented, but not all of them are. This change aims to prevent having to instrument, profile, and mitigate each condition separately.
#rnx
#jira none
#rb francis.hurteau, brandon.schaefer
#preflight 611ec9248ff55400018d5018
#ROBOMERGE-AUTHOR: geoff.evans
#ROBOMERGE-SOURCE: CL 17463345 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)
[CL 17463757 by geoff evans in ue5-release-engine-test branch]
Switch SDL_SetKeyboardGrab to SDL_SetWindowKeyboardGrab
Add SDL_ConfineCursor to dynapi_overrides
Hat tip Ethan Lee
#jira none
#rb Brandon.Schaefer
[at]Brandon.Schaefer
#ROBOMERGE-SOURCE: CL 17252629 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17252653 by michael sartain in ue5-release-engine-test branch]
* Add bookmark pair to create telemetry scope for LoadAssetAndPIE, whitelist it in project-specific statistics files
* Split Stats.csv files into global Engine/Build/IterationProfile.csv and per-project Build/IterationProfile.csv directives (for project privacy)
* Global statistics file is now assumed, not necessary to pass into the <Commandlet>.
* Run <Commandlet> with Project specified so it can load project-specific statistic entries
* Remove -NoEnginePlugins parameter (projects require plugins!)
* Always do many hundreds of frames after we request PIE (vs. a time span which can be taken up mostly with preparing to PIE)
* Remove GC from the automated test function, it was just legacy and it betrays how realistic the test is
* Disable sleep in Editor when it doesn't have focus only in Deterministic mode
#rnx
#jira none
#rb francis.hurteau
#preflight 610cb65b0d783d000149b82f
#preflight 610caadd72fe2c0001a73f02
#ROBOMERGE-SOURCE: CL 17086203 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17086233 by geoff evans in ue5-release-engine-test branch]