-Turns out the array can be shrunk between PIE sessions. Because we check if the index is in the valid range we do want it to actually shrink there.
#rb Jeff.Fisher
#preflight 628e9121fe6f6d97bc152ea2
[CL 20372952 by Jules Blok in ue5-main branch]
-Was getting bad rotator asserts in debug build on oculus with openxr. Turns out we had some uninitialized XrSpaceLocation structs if tracking is not yet succeeding.
#review-20238668
#rb robert.srinivasiah
#preflight 628570f7571eb4bfb613f85f
[CL 20270103 by Jeff Fisher in ue5-main branch]
Previous in VRPIE, if we called `vr.bEnableStereo` or used the "Enable HMD" BP node, we'd trigger VRPIE exit.
No longer! We can retain the VRPIE session, and toggle between 2D and stereo in the same PIE session.
#jira UE-147486
#rb jeff.fisher
#preflight 6269c77fd575958d5552c16b
#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 19950177 in //UE5/Release-5.0/... via CL 19950553
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19952624 by robert srinivasiah in ue5-main branch]
The also changes the clear value to always be transparent, but this seems to be the UE5 default now anyway.
#jira UE-150014
#rb Jeff.Fisher
#preflight 6266ebb10634d0904ce96f22
#ROBOMERGE-AUTHOR: jules.blok
#ROBOMERGE-SOURCE: CL 19906845 in //UE5/Release-5.0/... via CL 19910250
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 19911523 by jules blok in ue5-main branch]
We were using SetNum for our DeviceLocations TArray. This lead to garbage data in DeviceLocations, which would accidentally populate LocationFlags.
Because we rely on caching for 'last known' locations, this leads to bugs when we fetch a partially valid location.
One specific bug scenario: we fetch a valid position, but invalid orientation. We reset position correctly in the cached locations. But the garbage data
is left for orientation, leading to failures in GetCurrentPose.
#jira UE-148686
#rb Jeff.Fisher
#preflight 6261a9c7d929bc34a3ee1967
#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 19856731 in //UE5/Release-5.0/... via CL 19857742
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19869163 by robert srinivasiah in ue5-main branch]
onethread needs a couple corrected accesses that get mixed up with current usage of IsInRenderingThread
#jira UE-131060
#rb Jeff.Fisher
#preflight
#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 19838594 in //UE5/Release-5.0/... via CL 19839555
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19841432 by robert srinivasiah in ue5-main branch]
The VulkanRHI doesn't like certain combinations of ERHIAccess flags, so we make sure to split them across different usages of OpenXRHMD::CopyTexture_RenderThread (spectator screen vs swapchain layers).
#rb Arciel.Rekman
#jira UE-147328
#preflight 625f8b3a6b458c3f859903ab
#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 19833030 in //UE5/Release-5.0/... via CL 19833737
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19839983 by robert srinivasiah in ue5-main branch]
-bulletproof the runtime name buffer by null terminator initializing it and ensuring it has a null terminator after calling it.
[REVIEW]
#rb [at]Rob Srinivasiah
#jira UE-148741
#preflight 625f17ea3e0f6f80adc3da3f
#ROBOMERGE-AUTHOR: jeff.fisher
#ROBOMERGE-SOURCE: CL 19829012 in //UE5/Release-5.0/... via CL 19829755
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)
[CL 19835304 by jeff fisher in ue5-main branch]
-xrGetReferenceSpaceBoundsRect fails for non-stage reference spaces. This failure is not super-critical, and can be induced by asking for the wrong space type in blueprint, so it should be a warning rather than an ensure.
#rb Robert.Srinivasiah
#review-19723122
#preflight 6256eadc667d4516640c7357
[CL 19740632 by Jeff Fisher in ue5-main branch]
-SceneTextures.cpp was using module lookup functions in the render thread that are only safe to use without locking on the game thread. However we don't want to lock these every frame. So I have added an accessor for this information to IStereoRendering.h and cached the values in the oculus HMD implementation that uses it but did not already have the value cached in the hmd. This cached value can be safely read on any thread.
#review-19621457
#rb Jules.Blok Robert.Srinivasiah
#preflight 624f446f8a43273c43f570f7
[CL 19680731 by Jeff Fisher in ue5-main branch]
We have to do a couple things in order to schedule our call to SetIndependentViewportSize on the GameThread
* Defer initial EnableStereo call until VR PIE startup while using the Editor (it used to call EnableStereo at editor startup??)
* VR PIE correctly resizes viewport since the window size and viewport size are decoupled
* Call SetIndependentViewportSize in EnableStereo(true), which happens at VR PIE kickoff time in the GameThread
#rbJeff.Fisher Arciel.Rekman
#jira UE-147503
#preflight 624614b8dc6183e3f50c9711
[CL 19578632 by robert srinivasiah in ue5-main branch]
-AR tracking systems deliver 32 bit float data, so we should typically work with that in the lower level code because the data is often transformed into a new space when we copy it into UE so we can iterate the vertices only once if we do the FVector3f to FVector conversion at the same time as we convert for space and worldscale.
-This code is currently only used by the MicrosoftOpenXR plugin, distributed by microsoft. But all known platforms at this time use float32s for this kind of data.
#review-19473750
#rb Robert.Srinivasiah
#preflight 623c945cca34ffd7bf8ccbc6
[CL 19497564 by Jeff Fisher in ue5-main branch]
Because we've made our OpenXR code more and more generic (and not tied to Oculus setups), we can actually enter some of the OpenXR code on non-Oculus setups.
This leads to a failure on some devices w/o proper newer Android facilities (it should actually fail 'gracefully' further on down the line on a phone).
We can work around this for now by using GameActivity APIs to check for Oculus presence.
#jira UE-146100
#rb Chris.Babcock
#preflight 6232dceb6c05dd6bbc7a8393
#lockdown Cristina.Riveron
#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 19430188 in //UE5/Release-5.0/... via CL 19430957
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)
[CL 19432592 by robert srinivasiah in ue5-main branch]
Similar workaround is applied if the Oculus plugin is loaded side-by-side, see FOculusOpenXRHMD::OnEndProjectionLayer
#jira UE-146137
#rb Arciel.Rekman
#preflight 62327eb87b5cb40768a50330
#lockdown Cristina.Riveron
#ROBOMERGE-AUTHOR: robert.srinivasiah
#ROBOMERGE-SOURCE: CL 19423114 in //UE5/Release-5.0/... via CL 19423638
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v930-19419903)
[CL 19424595 by robert srinivasiah in ue5-main branch]
Removing unnecessary dependencies on RHICore and RHI ThirdParty libraries.
#jira none
#rb mihnea.balta
#preflight 6230060a6065b4ecd3dfaabe
#robomerge FNNC
[CL 19384827 by christopher waters in ue5-main branch]