Files
UnrealEngineUWP/Engine/Source/Runtime/HeadMountedDisplay/Private/HeadMountedDisplayBase.cpp

179 lines
6.5 KiB
C++
Raw Normal View History

// Copyright Epic Games, Inc. All Rights Reserved.
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
#include "HeadMountedDisplayBase.h"
#include "DefaultStereoLayers.h"
#include "EngineAnalytics.h"
Copying //UE4/Dev-Core to //UE4/Dev-Main (Source: //UE4/Dev-Core @ 3847469) #lockdown Nick.Penwarden #rb none ============================ MAJOR FEATURES & CHANGES ============================ Change 3805828 by Gil.Gribb UE4 - Fixed a bug in the lock free stalling task queue and adjusted a comment. The code is not current used, so this is not actually change the way the code works. Change 3806784 by Ben.Marsh UAT: Remove code to compile UBT when using UE4Build. It should already be compiled as a dependency of UAT. Change 3807549 by Graeme.Thornton Add a cook timer around VerifyCanCookPackage. A licensee reports this taking a lot of time so it'll be good to account for it. Change 3807727 by Graeme.Thornton Unhide the text asset format experimental editor option Change 3807746 by Josh.Engebretson Remove WER from iOS platform Change 3807928 by Robert.Manuszewski When async loading, GC Clusters will be created after packages have been processed to avoid situations where some of the objects that are being added to a cluster haven't been fully loaded yet Change 3808221 by Steve.Robb GitHub #4307 - Made GetModulePtr() thread safe by not using GetModule() ^ I'm not convinced by how much thread-safer this is really, but it's tidier anyway. Change 3809233 by Graeme.Thornton TBA: Misc changes to text asset commandlet - Rename mode to "loadsave" - Add -outputFormat option which can be assigned "text" or "binary" - When saving binary, use a differentiated filename so that source assets aren't overwritten Change 3809518 by Ben.Marsh Remove the outdated UnrealSync automation script. Change 3809643 by Steve.Robb GitHub #4277 : fix bug; FMath::FormatIntToHumanReadable 3rd comma and negative value #jira UE-53037 Change 3809862 by Steve.Robb GitHub #3342 : [FRotator.h] Fix to DecompressAxisFromByte to be more efficient and reflect its intent accurately #jira UE-42593 Change 3811190 by Graeme.Thornton Add support for writing specific log channels to their own files Change 3811197 by Graeme.Thornton Minor updates to output formatting and timing for the text asset commandlet Change 3811257 by Robert.Manuszewski Cluster creation will now be time-sliced Change 3811565 by Steve.Robb Define out non-monolithic module functions. Change 3812561 by Steve.Robb GitHub #3886 : Enable Brace-Initialization for Declaring Variables Incorrect semi-colon search removed after discussion with author. Test added. #jira UE-48242 Change 3812864 by Steve.Robb Removal of some unproven code which was supposed to fix hot reloading BP class functions in plugins. See: https://udn.unrealengine.com/questions/376978/aitask-blueprint-nodes-disappear-when-their-module.html #jira UE-53089 Change 3820358 by Ben.Marsh PR #4358: Incredibuild use ShowAgent by default (Contributed by projectgheist) Change 3822594 by Ben.Marsh UAT: Improvements to log file handling. - Always create log files in the final location, rather than writing to a temp directory and copying in later. - Now supports -Verbose and -VeryVerbose for increasing log verbosity, rather than -Verbose=XXX. - Keep a backlog of log output before the log system is initialized, and flush it to the log file once it is. - Allow buildmachines to specify the uebp_FinalLogFolder environment variable, which is used to form paths for display. When build machines copy log files elsewhere after UAT finishes (eg. a network share), this allows error messages to display the right location. Change 3823695 by Ben.Marsh UGS: Fix issue where precompiled binaries would not be shown as available for a change until scrolling the last submitted code change into the buffer (other symptoms, like de-focussing the main window would cause it to go back to an unavailable state, since the changes buffer was shrunk). Now always queries changes up to the last change for which zipped binaries are available. Change 3823845 by Ben.Marsh UBT: Exclude C# projects for unsupported platforms when generating project files. Change 3824180 by Ben.Marsh UGS: Add an option to show changes by build machines, and move the "only show reviewed" option in there too (Options > Show Changes). #jira Change 3825777 by Steve.Robb Fix to return value of StringToBytes. Change 3825810 by Ben.Marsh UBT: Reduce length of include paths for MSVC toolchain. Change 3825822 by Robert.Manuszewski Optimized PIE lazy pointer fixup. Should be up to 8x faster now. Change 3826734 by Ben.Marsh Remove code to disable TextureFormatAndroid on Linux. It seems to be an editor dependency. Change 3827730 by Steve.Robb Try to avoid decltype(auto) if it's not supported. See: https://udn.unrealengine.com/questions/395644/build-417-with-c11-on-linux-ttuple-errors.html Change 3827745 by Steve.Robb Initializer list support for TMap. Change 3827770 by Steve.Robb GitHub #4399 : Added a CONSTEXPR qualifiers to FVariant::GetType() #jira UE-53813 Change 3829189 by Ben.Marsh UBT: Now always writes a minimal log file. By default, just contains the regular console output and any reasons why actions are outdated and needed to be executed. UAT directs child UBT instances to output logs into its own log folder, so that build machines can save them off. Change 3830444 by Steve.Robb BuildVersion and ModuleManifest moved to Core, and parsing of these files reimplemented to avoid a JSON library. This should be revisited when Core has its own JSON library. Change 3830718 by Ben.Marsh Fix incorrect group name being returned by FStatNameAndInfo::GetGroupName() for stat groups. The editor populates the viewport stats list by calling this for every registered stat and stat group (via FLevelViewportCommands::HandleNewStatGroup). The menu entry attempts to show the stat name with STAT_XXX stripped from the start as the menu item label, with the free-form text description as a tooltip. For stat groups, the it would previously just return the stat group name as "Groups" (due to the raw naming convention of "//Groups//STATGROUP_Foo//..."). Since this didn't match the expected naming convention in FLevelViewportCommands::HandleNewStat (ie. STAT_XXX or STATGROUP_XXX), it would fail to add it. When the first actual stat belonging to that group is added, it would add a menu entry for the group based on that, but the stat description no longer makes sense as a tooltip for the group. As a result, all the editor tooltips were junk. #jira UE-53845 Change 3831064 by Ben.Marsh Fix log file contention when spawning UBT recursively. Change 3832654 by Ben.Marsh UGS: Fix error panel not being selected when opened, and weird alignment/color issues on it. Change 3832680 by Ben.Marsh UGS: Fix failing to detect workspace if synced to a different stream. Seems to be a regression caused by recent P4D upgrade. Change 3832695 by Ben.Marsh UGS: Invert the options in the 'Show Changes' submenu for simplicity. Change 3833528 by Ben.Marsh UAT: Script to rewrite source files with public include paths relative to the 'Public' folder. Usage is: RebasePublicIncludePaths -UpdateDir=<Dir> [-Project=<Dir>] [-Write]. Change 3833543 by Ben.Marsh UBT: Allow targets to opt-out of having public include paths added for every dependent module. This reduces the command line length when building a target, which has recently become a problem with larger games (due to Microsoft's compiler embedding the command line into each object file, with a maximum length of 64kb). All engine modules are compiled with this enabled; games may opt into it by setting bLegacyPublicIncludePaths = false; from their .target.cs, as may individual modules. Change 3834354 by Robert.Manuszewski Archetype pointer will now be cached to avoid locking the object tables when acquiring its info. It should also be faster this way regardless of any locks. #jira UE-52035 Change 3834400 by Robert.Manuszewski Fixing crash on exit caused by cached archetypes not being cleaned up before static exit cleanup. #jira UE-52035 Change 3834947 by Steve.Robb USE_FORMAT_STRING_TYPE_CHECKING removed from FMsg::Logf and FMsg::Logf_Internal. Change 3835004 by Ben.Marsh Fix code that relies on dubious behavior of requiring referenced "include path only" modules having their _API macros set to be empty, even if the module is actually implemented in a separate DLL. Change 3835340 by Ben.Marsh Fix errors making installed build from directories with spaces in the name. Change 3835972 by Ben.Marsh UBT: Improved diagnostic message for targets which don't need a version file. Change 3836019 by Ben.Marsh UBT: Fix warnings caused by defining linkage macros for third party libraries. Change 3836269 by Ben.Marsh Fix message box larger than the screen height being created when a large number of modules are incompatible on startup. Change 3836543 by Ben.Marsh Enable SoundMod plugin on Linux, since it's already supported through the editor. Change 3836546 by Ben.Marsh PR #4412: fix type mismatch (Contributed by nakapon) Change 3836805 by Ben.Marsh Fix commandlet to compile marketplace plugins. Change 3836829 by Ben.Marsh UBT: Fix ability to precompile plugins from installed engine builds. Change 3837036 by Ben.Marsh UBT: Write the previous and new contents of intermediate files to the log if they change. Makes it easier to debug unexpected rebuilds. Change 3837037 by Ben.Marsh UBT: Fix engine modules having inconsistent definitions depending on whether modules are only referenced for their include paths vs being linked into a binary (due to different _API macro). Change 3837040 by Ben.Marsh UBT: Remove code that initializes members in ModuleRules and TargetRules objects before the constructor is run. This is no longer necessary, now that the backwards-compatible default constructors have been removed. Change 3837247 by Ben.Marsh UBT: Remove UELinkerFixups module, now that plugins and precompiled modules do not require hacks to force initialization (since they're linked in as object files). Encryption and signing keys are now set via macros expanded from the IMPLEMENT_PRIMARY_GAME_MODULE macro, via project-specific macros added in the TargetRules constructor. Change 3837262 by Ben.Marsh UBT: Set whether a module is an engine module or not via a default value for the rules assembly. All non-program engine and enterprise modules are created with this flag set to true; program targets and modules are now created from a different assembly that sets it to false. This removes hacks from UEBuildModule needed to adjust behavior for different module types based on the directory containing the module. Also add a bUseBackwardsCompatibleDefaults flag to the TargetRules class, also initialized to a default value from a setting passed to the RulesAssembly constructor. This controls whether modules created for the target should be configured to allow breaking changes to default settings, and is set to false for all engine targets, and true for all project targets. Change 3837343 by Ben.Marsh UBT: Remove the OverrideExecutableFileExtension target property. Change the only current use for this (the MayaLiveLinkPlugin target) to use a post build step to copy the file instead. Change 3837356 by Ben.Marsh Fix invalid character encodings. Change 3837727 by Graeme.Thornton UnrealPak: KeyGenerator: Only generate prime table when required, not all the time Change 3837823 by Ben.Marsh UBT: Output warnings and errors when compiling module rules assembly in a way that allows them to be double-clicked in the Visual Studio output window. Change 3837831 by Graeme.Thornton UBT: When parsing crypto settings, always load legacy data first, then allow the new system to override it. Provides the same key backwards compatibility that the editor settings class gives Change 3837857 by Robert.Manuszewski PR #4404: Make FGCArrayPool singleton global instead of per-CU (Contributed by mhutch) Change 3837943 by Robert.Manuszewski PR #4405: Fix FGarbageCollectionTracer (Contributed by mhutch) Change 3838451 by Ben.Marsh UBT: Fix exceptions thrown on a background thread while caching C++ includes not being caught and logged correctly. Now captures exceptions and re-throws on the main thread. #jira UE-53996 Change 3839519 by Ben.Marsh UBT: Simplify configuring bPrecompile and bUsePrecompile settings for modules. Each rules assembly can now be configured as installed, which defaults the module rules it creates to use precompiled data. Change 3843790 by Graeme.Thornton UnrealPak: Log the size of all encrypted data Change 3844258 by Ben.Marsh Fix plugin compile failure when created via new plugin wizard. Passing -plugin on the command line is unnecessary, and is now reserved for packaging external plugins for the marketplace. Also extend the length of time that the error toast stays visible, and don't delete the plugin on failure. #jira UE-54157 Change 3845796 by Ben.Marsh Workaround for slow performance of String.EndsWith() on Mono. Change 3845823 by Ben.Marsh Fix case sensitive matching of platform names in -TargetPlatform=X argument to BuildCookRun. #jira UE-54123 Change 3845901 by Arciel.Rekman Linux: fix crash due to lambda lifetime issues (UE-54040). - The lambda goes out of scope in FBufferVisualizationMenuCommands::CreateVisualizationCommands, crashing the editor if compiled with a recent clang (5.0+). (Edigrating 3819174 to Dev-Core) Change 3846439 by Ben.Marsh Revert CL 3822742 to always call Process.WaitForExit(). The Android target platform module in the editor spawns ADB.EXE, which inherits the editor's stdout/stderr handles and forks itself. Process.WaitForExit() waits for EOF on those pipes, which never occurs because the forked process never terminates. Proper fix is probably to have the engine explicitly duplicate stdout/stderr handles for new pipes to output process, but too risky before copying up to Main. Change 3816608 by Ben.Marsh UBT: Use DirectoryReference objects for all include paths. Change 3816954 by Ben.Marsh UBT: Remove bIncludeDependentLibrariesInLibrary option. This is not widely supported by platform toolchains, and is not used anywhere. Change 3816986 by Ben.Marsh UBT: Remove UEBuildBinaryConfig; UEBuildBinary objects are now just created directly. Change 3816991 by Ben.Marsh UBT: Deprecate PlatformSpecificDynamicallyLoadedModules. We no longer have any special behavior for these modules. Change 3823090 by Ben.Marsh UAT: Improve logging for child UAT instances. - Calling RunUAT now requires an identifier for prefixing into the parent log, which is also used to determine the name of the log folder. - Stdout is no longer written to its own output file, since it's written to the parent stdout, the parent log file, and the child log file anyway. - Log folders for child UAT instances are left intact, rather than being copied to the parent folder. The derived names for the copied names were confusing and hard to read. - Output from UAT is no longer returned as a string. It should not be parsed anyway (but may be huge!). ProcessResult now supports running without capturing output. Change 3826082 by Ben.Marsh UBT: Add a check to make sure that all modules that are precompiled are correctly marked to enable it, even if they are part of the build target. Change 3827025 by Ben.Marsh UBT: Move the compile output directory into a property on the module, and explicitly pass it to the toolchain when compiling. Change 3829927 by James.Hopkin Made HTTP interface const correct Change 3833533 by Ben.Marsh Rewrite engine source files to base include paths relative to the "Public" directory. This allows reducing the number of public include paths that have to be added for engine modules. Change 3835826 by Ben.Marsh UBT: Precompiled targets now generate a separate manifest for each precompiled module, rather than adding object files to a library. This fixes issues where object files from static libraries would not be linked into a target if a symbol in them was not referenced. Change 3835969 by Ben.Marsh UBT: Fix cases where text is being written directly to the console rather than via logging functions. Change 3837777 by Steve.Robb Format string type checking added to FOutputDevice::Logf. Fixes for those. Change 3838569 by Steve.Robb Algo moved up a folder. [CL 3847482 by Ben Marsh in Main branch]
2018-01-20 11:19:29 -05:00
#include "Interfaces/IAnalyticsProvider.h"
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
#include "AnalyticsEventAttribute.h"
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3512802) #lockdown Nick.Penwarden #rb no.one ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3060975 by Ryan.Vance Integrating 3058175 from Oculus Change 3466079 by Nick.Atamas Added rudimentary collision support to MrMesh. Change 3468111 by Mike.Beach Give the SceneRender component's scene view a specific ViewActor (the component's owner). This lets us set bOnlyOwnerSee on components belonging to the same actor, and have it only showup in the render scene view. Change 3468267 by Nick.Atamas Now using non-interleaved data in MRMeshComponent Change 3468475 by Mike.Beach Initial checkin for new mixed reality plugin (WIP). New MixedReality capture component, intended to mimic a real world camera. Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) #jira UEVR-795, UEVR-789 Change 3468483 by Mike.Beach Marking the new MixedReality plugin as experimental (as it is incomplete and a WIP) Change 3468511 by Mike.Beach CIS fixes for fallout from CL 3468475. Change 3469754 by Mike.Beach CIS compiler error fixes (fallout from CL 3468475). Change 3470407 by Mike.Beach *sigh* more CIS fixes (fallout from 3468475) Change 3471494 by Douglas.Copeland Test content for GearVR Stereo Layers Change 3476135 by Jeff.Fisher UE-45661 Duplicate .so files in GoogleVR. -We want the version of each file from the android_x86 style folder, but in the android\x86 folder, and the APL.xml file needed to reference the new path rather than the old path. -This fix was also made in Release-4.16 for 4.16.2 in cl 3476133. #jira UE-45661 #review-3474770 Change 3480446 by Dustin.Holmes Added support for Vive Tracker. #jira UEVR-792 Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3483325 by Nick.Atamas Merging //UE4/Partner-Google-VR to Dev-VR (//UE4/Dev-VR) Known issue with Mac build packaging. Change 3485969 by Nick.Atamas Fixed double-spacing and formatting issues. Converted TangoEcefUtils.cpp to follow Epic coding standards. Change 3486071 by Nick.Atamas Rename/move file(s) from Plugins/Runtime/Tango/... to Plugins/Runtime/GoogleTango/... Change 3486078 by Nick.Atamas Fixed non-portable (wrong case) include path. Change 3486906 by Jeff.Fisher Fixing build warning about a variable being shadowed. Change 3487245 by Jeff.Fisher Fixing build break in some template source files from HeadMountedDisplayFunctionLibrary move. Change 3487827 by Nick.Atamas Fixing the missing platforms header; should resolve CIS warning. Change 3488808 by Keli.Hlodversson Fix vr.Debug.VisualizeTrackingSensors when ViewTarget->HasActiveCameraComponent() is true. Also switched to use GWorld instead of passing in the current World argument to the handler as the world pointer can change for instance if turning the setting on and loading another level in the editor. #jira UE-45949 Change 3490841 by Nick.Atamas Fixing more CIS and coding standard issues related to Tango. Change 3491038 by Nick.Atamas Modified GoogleInstantPreview.Build.cs to use RuntimeDependencies instead of explicit dylib/dll copying. Change 3492481 by Jeff.Fisher Fixing HeadMountedDisplayTypes.h shadowed member warning. Change 3495157 by Mike.Beach New XR modular feature - XRDeviceAssets. Intended to give us access to device models so we can render arbitrary devices. Implements this for SteamVR. #jira UEVR-829 Change 3495205 by Mike.Beach CIS fix (fallout from 3495157) - missing leading 'template<>' for template specializations. Change 3495213 by Mike.Beach Fixing the vr.SpectatorScreenMode CVar so that it's sink function doesn't override other CVar commands that set the mode themselves. #jira UEVR-790 Change 3495403 by Nick.Atamas - Disabled Google Tango support for Win32. - Disabled GoogleInstantPreview files being erroneously included while building game; it is only used by Editor. - Renamed Tango.uplugin -> GoogleTango.uplugin - Fixed self-assignment in TangoImageComponent.cpp Change 3496225 by Mike.Beach Fixing CIS compiler error for non-editor builds (fallout from CL 3495157). Change 3496981 by Nick.Atamas GoogleInstantPreview libraries are now checked into Binaries/ThirdParty/... so that no copying from .Build.cs is necessary. Change 3497033 by Nick.Atamas Going back from GoogleTango/ to Tango/. It's a bigger change that previously thought. Change 3498487 by Nick.Whiting Adding option to PIE settings to NOT minimize editor when doing VR PIE Change 3499242 by Dustin.Holmes Fixed static analysis warning by updating the number of devices that can have their button states tracked. Change 3499341 by Nick.Atamas Hopefully fixes Mac Editor CIS. Change 3499395 by Arciel.Rekman Copying //UE4/Partner-Valve@3499365 to Dev-VR (//UE4/Dev-VR) Change 3499550 by Ryan.Vance Fixing compile issue. Change 3499678 by Nick.Atamas - Dummy Mesh Reconsturctor now sometimes generates empty blocks to test more scenarios. - Removed unused code in DummyMeshReconstructorModule - Removed unused variable in GoogleInstantPreview.Build.cs Change 3499840 by Nick.Atamas std::string needed by google's online system. Change 3499889 by Nick.Atamas Fixed static code analysis CIS fails. Change 3500007 by Nick.Whiting Removing Vulkan RHI dependency on a plugin, refactoring it to use an interface to check to break the dependency Change 3500027 by Nick.Whiting Fixing missing include file in SteamAudio Change 3500030 by Nick.Whiting Changing cast from reinterp to static. Copypasta fail Change 3500078 by Nick.Whiting Speculative fix for the builder for an error that doesn't repro locally Change 3500086 by Nick.Atamas More build fixups. Change 3500096 by Nick.Atamas Copying //UE4/Partner-Google-VR-Minimal at CL3499964 to Dev-VR (//UE4/Dev-VR) Change 3500107 by Nick.Atamas Does this fix CIS? Change 3500121 by Nick.Atamas More CIS fixing, hopefully. Change 3500129 by Nick.Atamas More CIS fixing. Change 3500713 by Nick.Whiting Fix for Win32 build break Change 3500887 by Arciel.Rekman Fixed copyright notices and compilation errors in Steam Audio. (Edigrating CL 3500131) Change 3501010 by Arciel.Rekman Fix shadowing error. Change 3501230 by Nick.Atamas Make warning go away. Change 3501890 by Nick.Atamas Moving Tango->GoogleTango. Fixup pass in next CL. Change 3501900 by Jeff.Fisher UE-46265 Crash attempting to Play in VR -Need to call UpdateSpectatorScreenMode_RenderThread in PreRenderViewFamily_RenderThread so that the mode is set before other renderthread work decides what to do based on the mode. #review-3501882 #jira UE-46256 Change 3502152 by Nick.Whiting Oculus Unified Plugin. OculusHMD plugin now supports both the Rift and the GearVR in one plugin. Minor supporting engine modifications included Change 3502199 by Nick.Atamas Checking in TangoQA project with fixed-up content to point at GoogleTango plugin. Known issue: crash when building cooking collision for bricks with no triangles. Change 3502215 by Nick.Atamas Fixed UIScale curve. Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3502930 by Mike.Beach Attempt to fix build errors (fallout from CL 3502873), using new (moved/renamed) PhysX cook util struct. Change 3503559 by Jeff.Fisher UE-46300 Editor process crashes when opening with Oculus HMD plugged in -Reimplementing spectator screen for updated oculus plugin. #jira UE-46300 #review-3503455 Change 3503685 by Jeff.Fisher TM-SpectatorScreen -made the scene capture component follow the camera orientation so i can make it look at different stuff. Change 3503695 by Nick.Whiting Fixes for build breaks Change 3503819 by Jeff.Fisher TM-SpectatorScreen -Adjusted scene capture and render target to get approximately correct color in the spectator screen. Change 3503852 by Nick.Atamas - Fixed crash when sending a brick with 0 data. - Added implementation to ClearAllBricks. Change 3503947 by Ryan.Vance Fixing overspecified method definitions. Change 3505242 by Douglas.Copeland Added gamepad inputs to SpectatorScreen Level BP for more efficient test setup Change 3505307 by Douglas.Copeland Re-saving Emmissive_Blue Material to resolve map warning Change 3505704 by Ryan.Vance We can't pass a nullptr into RenderTexture_RenderThread. Instead of checking for a mirror window here, the RenderTexture_RenderThread implementation should do the right thing. Jeff's mirrorwindow/socialscreen refactoring should handle this correctly now. Change 3505914 by Jeff.Fisher UE-46370 Ensure handled when restarting Editor after disabling Oculus plugin -remove scaling from the pose if necessary. It appears that when running oculus rift through steamvr the tracking reference comes through at .99 scale. We can't build a quat out of it unless it is normalized. #jira UE-46370 #review-3505892 Change 3506650 by Jack.Porter External Texture fixes changes from Dev-Sequencer - fix ENGINE_API meaning singletons were existing in each module - fix crash releasing an External RHITexture resource. - Recache uniform expressions when external textures are registered and unregistered Change 3506653 by Jack.Porter Remove external texture logging that was accidentally enabled. Change 3507043 by Mike.Beach Fixing CIS content errors (copied material still referencing assets from a separate plugin) - redid the material. Change 3507231 by Ryan.Vance #jira UE-46426 Fail preinit on gearvr if bPackageForGearVR is false Change 3507822 by Jeff.Fisher UE-46445 Player can't move through level by holding one grip button in Editor VR Mode -We were passing worldscalefactor, rather than worldscale into the get controller position function. WorldScaleFactor is worldscale / 100, making it a unitless multiplier of the world scale. So a *magical* 100 needs to be multipled back in here. Oculus must have found that and fixed it, looks like it was broken for 4.16. #jira UE-46445 Change 3508167 by Jeff.Fisher Fixing CheckSlow at startup on Oculus. The head pose orientation was being initialized to zero rather than identity, which isn't so useful. Change 3509622 by Jeff.Fisher Adding commented out null check to commented out implementation of ShouldDisableHiddenAndVisibileAreaMeshForSpectatorScreen_RenderThread. Change 3509983 by Jeff.Fisher Fixing vr.MirrorMode alias to vr.SpectatorScreenMode -was trying to use a cvar that no longer exists Change 3510188 by Ryan.Vance #jira UE-46454 We need to set the render target before applying cached render targets. Change 3510231 by Mike.Beach Setting up redirects for the plugin, since it was renamed from "OculusLibrary" to "OculusHMD" - ensuring that projects don't loose references in Blueprints, etc. #jira UE-46462 Change 3510253 by Ryan.Vance #jira UE-46452 We need to execute the clear before seting up shader state for the copy. Change 3511627 by Mike.Beach Correcting some CIS warnings - Updating misc. GetWorldFromContextObject() calls since the old signature was deprecated by the latest Framework integration. Change 3511984 by Mike.Beach Fixing fallout from integration with Main (CL 3511845)... common shader file renamed (to .ush instead of .usf). Change 3512797 by Mike.Beach Static analysis fix - making doubly sure that we're not indexing into out of bounds memory. Change 3512802 by Mike.Beach Only warning about the OculusHMD module being unavailable when it isn't loaded (otherwise, we were extraneously warning when users didn't have a rift). #jira UE-46575 DONE! [CL 3512933 by Mike Beach in Main branch]
2017-06-27 23:02:31 -04:00
#include "Misc/CoreDelegates.h"
#include "RenderingThread.h"
#include "Engine/Texture.h"
#include "DefaultSpectatorScreenController.h"
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
#include "DefaultXRCamera.h"
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3760894) #rb Rendering #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3658809 by Chris.Bunner Changing default HDR display gamut to P3 as in practice that's more common than Rec2020, this should be a user-facing option where possible though as we can't automatically retrieve that data. Change 3658842 by Chris.Bunner Backing out previous HDR default gamut change as it conflicts with mandatory platform defaults. Change 3695269 by Arne.Schober DR - Make clang happy wreorder Change 3695418 by Guillaume.Abadie Fixes compilation failure in FoliageType_InstancedStaticMesh.cpp. Change 3695430 by Guillaume.Abadie Fixes missing BeginFrame dynamic resolution event in EngineTest. Change 3695469 by Guillaume.Abadie Fixes crash when passing down an invalid parameter on the sample material expression's DDX, DDY parameters. Change 3696091 by Guillaume.Abadie Fixes Linux compilation failure in DynamicResolution.cpp Change 3696593 by Chris.Bunner Fixed typo in vetex factory enum. Change 3696596 by Chris.Bunner Added material attributes type checking to If material expression. Updated If material expression to validate compilation of inputs. Change 3696597 by Chris.Bunner Allow visible parameter retrieval to correctly traverse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs. Change 3696599 by Chris.Bunner Fixed material instance parameter visiblity when using nested static switches across functions. #jira UE-50878 Change 3696734 by Chris.Bunner Return type fix. Change 3697123 by Guillaume.Abadie Fixes compilation failure in PostProcessWeightedSampleSum.cpp on Windows 32bits. Change 3697125 by Guillaume.Abadie Fixes compilation failure in MaterialExpressionIf.h Change 3697127 by Guillaume.Abadie Fixes compilation failure in DynamicResolution.cpp on shipping build. Change 3697135 by Guillaume.Abadie Fixes crash in dynamic resolution event frontend when resizing game play viewport in EngineTest. Change 3697199 by Guillaume.Abadie Fixes TAA upsample's shader compilation failure on Mac. Change 3697220 by Guillaume.Abadie Makes static analysis happy again. Change 3697280 by Chris.Bunner Fixing up invalid casts in material layers validation. Change 3697366 by Rolando.Caloca DR - hlslcc - Fix warning #jira UE-43988 Change 3697451 by Rolando.Caloca DR - vk - Per pipeline descriptor pools Descriptor pool are now allocated per PSO instead of globally to reduce peak mem consumption and fragmentation Enabled on Windows only via VULKAN_USE_PER_PIPELINE_DESCRIPTOR_POOLS Change 3697477 by Rolando.Caloca DR - vk - Custom memory allocator Remove old/unused stats Change 3697486 by Rolando.Caloca DR - vk - Fix validation issue Change 3697488 by Richard.Wallis Fix for Mac editor session no longer accurately tracking Mouse location after moving between Desktops in Mission Control on 10.12.6. Problem stems from the extra call to update the slate cached window position in mouse move while dragging, which is itself is a hack but apparently this is needed as we don't get window position updates on Mac while dragging (although I couldn't see any -ve side effects without it) then the OS (in 10.12.6) doesn't always push out a final window did move notificaiton when changing desktops which leaves the window according to slate incorrectly positoned to it's frame. Solution is to either remove the mouse-move-while-drag window position hack or add a final window position update to the mouse-up event while dragging - this change is the latter. #jira UE-37553 Change 3697501 by Richard.Wallis Move audio processing over to audio bus tap. Currently on Mac Media audio playback uses OS media player mixer rather than Engine as existing implemtation, using AVAssetReader, now suffers from poor performance with new Media Framework. This audio tap version replaces that asset reader implementation but also suffers from bad quality audio hence is still disabled at the top of AvfMediaTracks.cpp. Original Code Review Description: Convert Mac to Play audio through the engine MediaFramework API rather than using AVMediaPlayer. This is the Mac implementation only - this should work ok on iOS but unable to test due to missing audio type implementation (throws error "Init Buffer on unsupported sound type name = Synth type = 5"), as such is only enabled for Mac. There maybe some extra tweaks required for iOS on app backgrounding etc if this feature is enabled. - Stuttering Audio Performace issue investiagation: Re-Tested this implementation against [now fixed] current Mac implementation which was working fine last year and that implementation now has the same audio output quality (performance) issues as this one. Basic investigation seems to point to somewhere in the engine audio handing. When poor audio is heard the FMediaAudioResampler::Generate() function is dequeing an IMediaAudioSample sample buffer and the audio sample queue usually has 50-100 of these IMediaAudioSample buffers waiting in the queue. I think the AvfMedia playback system is providing the sample buffers in good time but they are not getting consumed "fast" enough. This under consuming also occurs if I force the Core Audio - Audio Unit mixer to use 48000 samples/sec. #jira UEPLAT-1677 Change 3697517 by Richard.Wallis XCode 9.0 extra nullability specifiers required. Change 3697537 by Richard.Wallis Back out revision 23 from //UE4/Dev-Rendering/Engine/Plugins/Media/AvfMedia/Source/AvfMedia/Private/Player/AvfMediaTracks.cpp Change 3697670 by Rolando.Caloca DR - vk - Fix mapstaging surface Change 3697846 by Uriel.Doyon Allow denormalized values when converting float32 to float16. Change 3697892 by Uriel.Doyon Fix for unaligned structure elements Change 3699335 by Richard.Wallis Mac compile fix - turns out I did need these nullability specifiers here. Change 3699663 by Guillaume.Abadie Fixes time unit conversions from microseconds to milliseconds error in dynamic resolution heuristic when using GPU busy time queries. Change 3699959 by Rolando.Caloca DR - Fix barrier in the middle of render pass Change 3699969 by Rolando.Caloca DR - vk - Change dump layer location so it prints out validation ids Change 3700356 by Guillaume.Abadie Implements secondary screen percentage to be able to do TAA upsample followed spatial upscale so that the editor viewport still have same TAA upsample screen percentage range to test the content with no matter monitor's DPI. Change 3701105 by Guillaume.Abadie Ignore per view automatic mip bias on texture type other than 2d textures. #jira UE-51396 Change 3702297 by Richard.Wallis Mac compile fix for nullable specifier. Looks like Obj class using the C++ class also needs this otherwise it throws. Seems to be some kind of xcode/compiler caching bug with this stuff as it'll report the error once then on subsequent compiles say everything is ok. #jira UE-51386 Change 3702357 by Richard.Wallis Mac nullability compile fix - again. Looks like I fell foul of that xcode compile caching! #jira UE-51386 Change 3702424 by Guillaume.Abadie Fixes planar reflection from drowing themselves in their own FSceneRenderer in forward shading. #jira UE-51395 Change 3702464 by Guillaume.Abadie Fixes wrong viewport to buffer conversion of the distortion. #jira UE-51406 Change 3702819 by Guillaume.Abadie Fixes planar reflections with secondary screen percentage for HighDPI editor viewports. Change 3703732 by Guillaume.Abadie Removes unecessary check(); when there is more than 2 players with planar reflections. #jira UE-51436 Change 3704302 by Guillaume.Abadie Removes unecessary Interface suffix on new dynamic resolution related interfaces Change 3704390 by Chris.Bunner Fixed a coincidentally correct define. Change 3704730 by Rolando.Caloca DR - vk - Fix map for depth surfaces Change 3704739 by Rolando.Caloca DR - Debug label on D3D11 UAVs - Validate when running -d3debug Change 3705000 by Chris.Bunner Skip compiling opacity and opacity mask inputs on opaque surface materials. Previously the code was always added to the shader, sometimes we force opaque materials down a masked path which then calls the dormant code unintentionally. A safer fix for UE-48254. Partially reverted previous fix in CL 3608303 which removed a material instance optimization caching the overridden base properties. Change 3706065 by Guillaume.Abadie Does some renaming for primary screen percentage, and move the primary screen percentage method selection from dynamic resolution driver to FSceneView. Change 3706464 by Chris.Bunner Fixed material property translate overrides that were generating code in the wrong entry. Fixed conditions in If material expression GetInputType and IsMA check. #jira UE-51368 Change 3706641 by Chris.Bunner Missing "break" in switch statement (which unfortunately needs another bump to resolve). Change 3706642 by Guillaume.Abadie Fixes assertion failure when r.TemporalAA.EnableUpscale = 1 Change 3706650 by Gil.Gribb UE4 - UE4 - Changes from intel. Increase number of worker threads on Windows to if hyperthreads (hyperthreads √ 2) else cores √ 1 up to a max of 22 workers. Increase MAX_THREADS multiplier per bank from 22 to 26. Intel VTune ITT event annotations. Wrapped in same function as your existing CPU events and enabled with √vtune. Optimize NV cloth by consuming FVector instead of FVector4 out of the solver. Vertex buffers were using FVector all along. ~15% improvement. Optimize cloth copy to vertex buffer by adding prefetch (similar to how bones are already done). Move local to world cloth transform from CPU to GPU. When simulating lots of vertices game thread was becoming bottleneck doing matrix multiply. Add your TaskGraph task switch latency test code. Change 3706733 by Daniel.Wright Print Embree Build time Change 3706841 by Daniel.Wright EmbreeFilterFunc4 now handles masked out intersections properly Change 3707437 by Rolando.Caloca DR - vk - Android compile fix #jira UE-51474 Change 3707785 by Guillaume.Abadie Fixes viewport issue in bloom setup pass with TAA upsample. Change 3709623 by Rolando.Caloca DR - vk - Missing barrier for reading into cpu Change 3709633 by Rolando.Caloca DR - vk - Compile fix Change 3710454 by Mark.Satterthwaite Refactor the way we compile Buffer<> & RWBuffer<> types for Metal so that we can support the type-conversion semantics of HLSL/D3D. - Buffer<> types are converted to Linear Textures unless the internal type is 3-compnent or the STRONG_TYPE macro is added as a type-qualifier. Linear Textures require an MTLTexture "view" object be created around the MTLBuffer which is the backing-store and it is typically best if that buffer is marked as Private (GPU-only) memory, reading from this in the shader then uses the texture-fetch hardware to perform the format conversion on load. - RWBuffer<> & 3-compnent Buffer<> types are converted to use template functions to load/store - the implementation of which will read the format from the BufferSizes meta-table and determine which type-conversion to apply. Function-constants are used to specialise the shader where feasible to reduce branch costs (function-constants are a Metal feature that allow efficient runtime recompilation of bytecode shaders). - Buffer<> & RWBuffer<> types where the STRONG_TYPE macro is added as a type-qualifier (only does something on Metal, everywhere else it is #define'd away) are compiled as "raw" Metal buffers of the inner-type (e.g. float4 for Buffer<float4>) and the MetalRHI runtime will enforce that only SRVs/UAVs of the proper format are bound to it. This is necessary in a couple of cases (BoneMatrices, NumCulledLightsGrid, CulledLightDataGrid & ForwardLocalLightBuffer buffers) which are used in a larger number of shaders as Linear Textures have poorer performance than Buffer<>/RWBuffer<>. - Most of the complications to generating subtly different Metal code for different OS/device combinations have been factored out into ue4_stdlib.metal which acts as an extension to the Metal shader standard-library and helps simplify the MetalBackend code - particularly helpful for Buffer<>/RWBuffer<> but also texturecube_array and the SM6 wave-related intrinsics. - Reverted some of the awkward Metal-specific changes Richard.Wallis & Arne had to make to the high-level shaders as they aren't necessary anymore. - Made the existing Metal-specific changes to use uint32 for all light-grid injection buffers apply to all Metal platforms again (I had hoped that it would not be necessary anymore, but it is much faster this way). - STRONG_TYPE is actually hlslcc's "invariant" keyword applied as a type-qualifier to a Buffer<>/RWBuffer<> type - only valid when using Metal which exports this through ILanguageSpec and #define'd out for everyone else. - Old versions of iOS (anything earlier than iOS 10.3) won't be able to use this new code, so every buffer will be treated as "raw" and the MetalRHI will now properly report when something goes awry rather than it leading to mysterious rendering errors and crashes. Change 3710456 by Mark.Satterthwaite Fix the Eddie workset project generator so that Enterprise projects don't get mixed in with regular projects at the top-level because of the way Eddie combines workset groups. Change 3710457 by Mark.Satterthwaite DX11 texture formats for Mac Metal please! Change 3710480 by Mark.Satterthwaite Permit RHI thread and parallel execution in Mac -game mode again. Change 3710522 by Mark.Satterthwaite MSVC type-mismatch error fixes. Change 3710580 by Mark.Satterthwaite Alright then - if I can't use the C++11 extended string semantics I'll have to use "xxd -i" to generate a hex-dump include header from ue4_stdlib.metal instead. This can only be updated from a machine with access to the POSIX xxd command (Mac & Linux, possibly the new Linux sub-system for Win10). Change 3710616 by Mark.Satterthwaite Missing file. Change 3712972 by Guillaume.Abadie Fixes Circle DOF's negative alpha channel getting clamped to 0 in TAA pass. Change 3712979 by Guillaume.Abadie Fixes wrong RT reallocation when doing TAA upsample in editor viewports with secondary upscale. Change 3713406 by Mark.Satterthwaite Use GPU morph targets on Mac - the necessary buffer conversions will always be available there. For iOS it can only be supported if iOS 10 is the minimum OS & Metal standard so leave that on the CPU path for now. Change 3713494 by Richard.Wallis Fix for hitch when PIE unloading sublevel. PerformReachabilityAnalysisOnObjects is spawing multiple threads in Editor builds as there is an extra code path that results in Critical Section locking within a singleton type static object - this is a bottle neck for multiple threads. However they all just need to read the data not change it. Replaced FScopeLock with a Read/Write version allowing these threads to all take a read lock at the same time to reduce contention. Changed the FUObjectAnnotationDense implementation only - left the sparse implementation alone as its not currently affecting this - although we could proactivly change that too. Also tested again repro in linked bug UE-24711. #jira UE-40533 Change 3713612 by Mark.Satterthwaite Integrate LPV_STORE_INDEX_IN_HEAD_BUFFER related changes from //depot/Partners/Microsoft/UE4-MS/Engine-Fable @ 2954744 This should make Light Propagation Volumes potentially viable on non-Microsoft platforms. Change 3713623 by Mark.Satterthwaite Implement ByteAddressBuffer/RWByteAddressBuffer in hlslcc in a similar manner to StructuredBuffer/RWStructuredBuffer so that the backends don't need too much modification. Implement the necessary changes into MetalBackend to make this work for Metal. Load/Store{+2,3,4} & Atomics are supported. Counter operations are not supported and aren't likely to be. Change 3713636 by Mark.Satterthwaite Enable LPVs for Mac Metal. - Rework some multi-dimensional arrays & array-index dependent HLSL code that hlslcc simply can't cope with, the mesa-glsl compiler core is only capable of dealing with 1 dimensional arrays and array-indexing can't itself be directly dependent on the result of an array-index operation. - MetalRHI needs to ignore any SetRenderTargets call that binds nothing at all as you must bind at least one target (UAV, RT, Depth/Stencil) for it to be able to do anything sensible. - Turn on LPVs for Metal as it works now. Change 3714049 by Guillaume.Abadie Do not set screen percentage method to TAA upsample when anti aliasing method is not TAA even if there is automatic fallback in the renderer. Change 3714306 by Guillaume.Abadie Fixes assertion failure in dynamic resolution state proxy with GPU busy time queries. Change 3714714 by Mark.Satterthwaite Tweak Metal GPU identification so that it works with eGPU boxes and protoype hardware - these changes only apply to macOS 10.13 so the system as a whole remains. Change 3716104 by Mark.Satterthwaite Fix 10.12/Xcode 8 compile errors from the build-farm which is still split until Fortnite can update. Change 3716120 by Mark.Satterthwaite Silence static-analysis. Change 3716158 by Guillaume.Abadie Rewrites editor primitive compositing to support TAA upsample. This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives. Change 3716271 by Daniel.Wright Lightmass correctness fixes * After these changes, point, spot, directional and sky lights closely match reference renderer Mitsuba after light unit conversions * Photon density trimming intended for direct photons was affecting indirect photons as well. This caused high noise for point / spot lights with a large attenuation radius. Indirect photon density even for small lights is 5x with this change, which improves 2nd bounce quality. * Removed legacy fudge factor on point / spot light photon energy * Spotlights no longer emit based on indirect photon paths. Fixes excessive photon energy from spot lights as they were emitting outside of the cone. * Fixed photons computing one more bounce than requested. * Added an option to use the Radiosity solver for all multibounce, replacing photons. Useful as a reference but generally too much noise indoors. * Fixed visualization of photons without final gather Change 3716434 by Mark.Satterthwaite Backout the remaining change from 3632041 that is no longer necessary - this was the last of the 4.18 Metal workarounds. Change 3716491 by Chris.Bunner Fixing up an edge-case on a recent optimization. Change 3716611 by Guillaume.Abadie Allows secondary screen percentage >= 100%. Change 3716977 by Guillaume.Abadie Back out changelist 3716158 to unblock QA pass. #jira UE-51580 Change 3717111 by Arne.Schober Fixing nomalization of Morph Tangents https://udn.unrealengine.com/questions/392462/ Also implemanted batching of the dispatches which should help worst case perfomance where dispatches become too small. CalculateInverseAccumulatedWeights is not cheap and proably should be moved onto a task thread that runs as soon as the input weights are ready. Change 3717127 by Mark.Satterthwaite Fix a mismerge from the reversion of 3632041 - part of the modified code had been moved into another file and I didn't initially notice. Change 3717178 by Mark.Satterthwaite Remove useless copy-pasted expressions from glsl_type::GetByteAddressBufferInstance & force MetalBackend to relink. Apparently the previous Mac libs were mysteriously broken. #jira UE-51583 Change 3717476 by Marcus.Wassmer Fix PS4 compile. funciton local statics not allowed on PSSL Also enabled the new atomics method for LPVs for all platforms Change 3717502 by Arne.Schober DR - Compiletime option for compressed ruleset (0.02ms perf gain on PS4 and disabled by default as it limits array size to 2million entries) Change 3717601 by Arne.Schober DR - Move cycle counter into more meaningfull locations. Change 3718054 by Guillaume.Abadie Removes unecessary check() failure on secondary upscale that fires when testing raw output screen percentage method. Change 3718066 by Guillaume.Abadie Reland: Rewrites editor primitive compositing to support TAA upsample. This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives. Change 3718589 by Mark.Satterthwaite Console-variable to enable and disable Manual-Vertex-Fetch for Metal and fix the internal code to handle the subtle changes in behaviour for vertex-declarations so we don't explode under the Metal validation layer. MVF works on macOS, though testing did expose an error with Tessellation on Nvidia (true for MVF enabled & disabled). Change 3718633 by Guillaume.Abadie Fixes temporal instability issue of TAA upsample with secondary screen percentage. Change 3718658 by Arne.Schober DR - 25% MorphTarget Speed increase because there was a bit of cache thrashing between the waves going on. Change 3718818 by Mark.Satterthwaite Fix compilation on hlslcc - integral values are not automatically converted into comparisons with zero. Change 3719004 by Guillaume.Abadie Lets the game viewport client automatically set raw output screen percentage method when doing dynamic resolution with stereo rendering but without TAA upsample. Change 3719375 by Mark.Satterthwaite Extend mtlpp compiler testing app to support Metal tessellation compute shaders so we can send Nvidia a much simpler reproduction of their regression. Change 3720099 by Mark.Satterthwaite Make the left-hand arguments work in airdiff. Change 3720413 by Mark.Satterthwaite Support standalone compute shaders in the mtlpp compiler test app. Change 3721232 by Mark.Satterthwaite No more Metal Shader Model 4 - instead we have to have a Metal Shader Model 5 w/o Tessellation as Nvidia's shader compiler is broken on all tessellation shaders in 10.13.0 and above. There is no guarantee that they will fix this prior to 10.14 and I can't afford to disable tessellation entirely as if I do that then the AMD & Intel compilers will also regress. As there is no Shader Model 4 platform on Mac anymore I've amended the LevelEditorActions to disable the preview modes when no appropriate shader platform is available. Change 3721244 by Mark.Satterthwaite Fix incorrect enum handling for Metal features due to overflow. #jira UE-51643 Change 3721338 by Mark.Satterthwaite MIssing file from 3721232 Change 3721818 by Mark.Satterthwaite Fix the Intel vector-array-dereference workaround so that it doesn't cause the AMD compiler to explode instead. Change 3722139 by Arne.Schober DR - [UE-51602] -Fixed Typo that accidently bound the LightingInstancebuffer to the Transform one #jira UE-51602 Change 3722165 by Rolando.Caloca DR - Default -opengl to GL4 Change 3722682 by Guillaume.Abadie Fixes wrong clear color in SSR important for VR that has a HMD mesh. Change 3722766 by Rolando.Caloca DR - Fix static analysis Change 3722943 by Mark.Satterthwaite Disable the METAL_SM5_NOTESS shader platform again - I can workaround the Nvidia pipeline state compiler crash by changing the buffer address space from "constant" to "device" as we're managing to confuse the poor thing. This won't materially affect AMD or Intel as they don't care much about this, but to limit performance issues on Nvidia we only need to do this for Tessellation Compute shaders. Change 3723100 by Mark.Satterthwaite Apparently users like enabling Metal shader standards that won't work on their current OS, so don't display those that aren't going to work & display an error message before quitting rather than crashing when trying to load a project that tries to use an incompatible shader version. Change 3723121 by Mark.Satterthwaite Fix build error. Change 3723245 by Daniel.Wright Ensure for when a reflection capture upload fails due to incorrect lighting scenario level handling Reflection captures with no data use an array index of 0, instead of -1. Might avoid reading uninitialized memory on PS4. Change 3723387 by Arne.Schober DR - Metal already applies the instance and vertexoffset in the shader Change 3723393 by Mark.Satterthwaite More fixes to the mtlpp compiler test application. Change 3725258 by Guillaume.Abadie Improves fast TAA upsample shader permutation by 15% on console. Change 3725555 by Chris.Bunner [Dupliate] CL 3725548 - Fixed invalid screenpercentage value in VehicleGame sample (was setting -1 but should default to 100). This has always been broken but was recently exposed by CL 3686200. Change 3726845 by Guillaume.Abadie Exposes SvPosition to material through screen position material expression, so that material no longer have SvPosition * InvViewSize * ViewSize precision loss. #jira UE-51428 Change 3728014 by Guillaume.Abadie Uses ScreenPosition material expression's PixelPosition pin in existing engine functions to improve precision. #jira UE-51428 Change 3728053 by Richard.Wallis Duplicate CL 3727958: Crash fix when using shared material libraries. Initial shader code library offset is not zero'd so all entry offsets were garbage. Change 3728339 by Guillaume.Abadie Adds project setting for TAA upample, and officialises TAA upsampling CVar. Change 3728549 by Guillaume.Abadie CsvProfiler is pretty cool, but even better with console autocompletion for lazy developers. Change 3728752 by nick.bullard Built and re-saved QA-MeshPaint #jira UE-50978 Change 3728775 by Guillaume.Abadie Implements r.DynamicRes.ChangePercentageThreshold to stabilize primary screen percentage. Change 3729224 by Uriel.Doyon Hidden levels now keep their last build data when using lighting scenarios. Hidden levels don't affect the scene anymore volumetric lighting when not using lighting scenarios. #jira UE-40454 #jira UE-38131 Change 3729243 by Marcus.Wassmer Update Ansel to 1.4 #github 4159 #jira UE-51545 Change 3729325 by zachary.wilson Adding indirect lighting to TM-LightingChannels #jira UE-47069 Change 3729485 by zachary.wilson Fixing ambient occlusion bias on QA-LightsStationary. Removed global PPV with bad settings, also fixed the shadow on the roof. #jira UE-50972 Change 3729629 by Uriel.Doyon Fixed crash when using debug view modes. Fixed d3ddebug error when clearing quad overdraw buffer. #jira UE-51836 Change 3730053 by Guillaume.Abadie Allows edititing of AScreenshotFunctionalTestBase::ScreenshotCamera. Change 3730308 by Guillaume.Abadie Disables TAA upsample on buffer visualization, and disallow screen percentage preview in editor viewport with any buffer visualization. Change 3730355 by Guillaume.Abadie Sacrifices consistency for good cvar name for TAA upsample. Change 3731403 by Daniel.Wright Reduced slider for ContactShadowLength to .1, algorithm produces poor results with larger values. Change 3731404 by Daniel.Wright Checkpoint for ScreenShadowMaskTexture, allowing 'vis ScreenShadowMaskTexture' Change 3731407 by Daniel.Wright Must opt-in for FDistanceFieldSceneData::VerifyIntegrity Change 3731517 by Guillaume.Abadie Freezes dynamic resolution heuristic when doing pause. Change 3732168 by Guillaume.Abadie Renames TAA upsampling cvar. Change 3732295 by Guillaume.Abadie Lets the scene texture's size and texel size return the correct sizes after TAA upsample. Change 3732313 by Guillaume.Abadie Implements SceneTexture material expressions' automated tests. Change 3734928 by Guillaume.Abadie Adds panic mode when the last N frames are over budget to the dynamic resolution heuristic. Change 3735966 by Ryan.Vance Fixing mac steamvr compile issue. Missed a few lines in the refactor because mac. Change 3736104 by Guillaume.Abadie Removes FSceneViewInitOptions::bDisableGameScreenPercentage brought by 4.18, that new screen percentage API do in a better way. Change 3736346 by Daniel.Wright Volumetric fog is always interpolated in the pixel shader, since per-vertex interpolation gives consistently poor results. Fixes Volumetric Fog on opaque in Forward, and on transparent in Deferred. Forward shading: per-pixel height fog is always done in the base pass, to work with MSAA correctly Change 3736348 by Daniel.Wright Forward shadowing of directional light for translucency * Static shadowing and CSM supported with minimal filtering (1 PCF) * Deferred renderer: affects translucency using 'Surface ForwardShading' lighting mode. Forward renderer: affects all translucency. Change 3736650 by Rolando.Caloca DR - vk - # of desc pools Change 3737985 by Guillaume.Abadie Fixes pixel inspector with primary and secondary screen percentage. Change 3738638 by Michael.Lentine Compile fix due to unclear operator precendence. Change 3739417 by Daniel.Wright Fixed a few issues with irradiance cache visualization Change 3739447 by Daniel.Wright Skip forward static shadowing in projects with static lighting disabled Change 3739595 by Daniel.Wright ConditionalPostLoad DistanceFieldReplacementMesh. Should fix a crash on load when static mesh derived data is being rebuilt, and the DistanceFieldReplacementMesh is in use. Change 3739598 by Daniel.Wright Disable capsules shadows on lowest shadow quality Change 3739611 by Daniel.Wright Added r.CapsuleDirectShadows and r.CapsuleIndirectShadows for more specific scalability control over capsule shadow features New Lighting Feature show flags for RTDF shadows and Capsule Shadows Change 3740516 by Guillaume.Abadie Fixes VR editor rendering only on eye with TAA upsample. #jira UE-52016 Change 3740580 by Guillaume.Abadie Fixes chromatic aberration with TAA upsample and multiple view rendering. #jira UE-51993 Change 3740588 by Guillaume.Abadie Gives to FXAA a more explicit draw event name for easier UDN support. Change 3740845 by Michael.Lentine Fix shipping build. Change 3740903 by Guillaume.Abadie Disables dynamic resolution threading outliers detection by default and includes editor UI GPU cost within dynamic resolution's begin/end frame events for better reliability of timestamp query based dynamic res in editor. Change 3741355 by Daniel.Wright Normalize planar reflection plane - fixes crash when scaling a BP with a planar reflection component Change 3741357 by Daniel.Wright More info on volumetric lightmap import failure Change 3742535 by Ryan.Vance Fix for view rect changes. Change 3743282 by Guillaume.Abadie Fixes a bug in dynamic resolution heuristic's outlier detection that was preventing the over budget panic to react. Change 3743559 by Michael.Lentine Port Siren changes for recompute tangents. This adds recompute tangents for cloth as well as the ability for recompute tangents to work across seams where vertices are duplicated. Change 3743679 by Guillaume.Abadie Cherry-pick 3743621: Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743906 by Ryan.Brucks BlueprintMaterialAndTextureNodes Plugin: Fix for clamping sampled HDR render target values by setting ERangeCompressionMode in the FReadSurfaceDataFlags to RCM_MinMax Change 3744096 by Ryan.Brucks BlueprintMaterialAndTextureNodes Plugin: removed Mip option from Texture2D_SampleUV_EditorOnly for now since reads from source data cannot access mips and it can be misleading. Change 3744253 by Guillaume.Abadie Fixes merge collisions of debug canvas rendering with High DPI, fixes stat unit on high DPI monitors, and fixes secondary screen percentages. Change 3744953 by Chris.Bunner Crash workaround. Change 3745628 by Marcus.Wassmer Temporarily disable recalctangent normal-smoothing #jira UE-52166 Change 3745942 by Guillaume.Abadie Fixes a todo in FCommonViewportClient Change 3746005 by Guillaume.Abadie Fixes stat UnitGraph on high DPI monitor. Change 3746029 by Guillaume.Abadie Oups.... Fix compilation. :D Change 3748322 by Guillaume.Abadie Shows dynamic resolution's primary screen percentage on stat unit/unitgraph console commands. Change 3748346 by Chris.Bunner Potential static analysis fix. Change 3748349 by Chris.Bunner Mac feature support flag fix on versions < 10.30. Change 3749336 by Guillaume.Abadie Fixes some spelling mistakes in dynamic resolution cvars. Thanks Daniel! Change 3749374 by Guillaume.Abadie Adds a black background on the stat unitgraph so timing curves can be seen no matter the content. Change 3749437 by Guillaume.Abadie Final UI polish up for `stat unitgraph` Change 3749719 by Guillaume.Abadie Fixes a crash when changing r.DynamicRes.MaxScreenPercentage below current screen percentage. Change 3750243 by Chris.Bunner Increasing controller's automated test timeout to allow for slower machines to complete the longest tests. #jira UE-48494, UE-51907 Change 3750728 by Guillaume.Abadie Fixes merge collision in chromatic aberration. #jira UE-52282 Change 3750791 by Guillaume.Abadie Fixes chromatic baerration R and G channel swap. Change 3751246 by Guillaume.Abadie Bypasses screen percentage apply with mobile LDR rendering. #jira UE-52089 Change 3752624 by Guillaume.Abadie Simplies dyn res state's event interface to a single virtual method. Change 3753766 by Chris.Bunner Rebuilt volumetric baked lighting test map and updated screenshots. #jira UE-52322 Change 3755108 by Guillaume.Abadie Fixes a bug where default dynamic resolution state was created at startup of server build. #jira UE-52345 Change 3755267 by Mark.Satterthwaite Fix condition controlling which features are enabled when iOS >= 10.3 - it wasn't working for iOS 11+ which was causing all kinds of problems. #jira UE-52301 Change 3755811 by Chris.Bunner Disable some new logging that was causing a stack overflow during EnginePreInit. #jira UE-52345 Change 3756983 by Mark.Satterthwaite Prevent different versions of metal_stdlib/ue4_stdlib from causing shader compilation failures due to a time-stamp mismatch between the local file & the PCH. This can happen when working with Xcode Beta releases that change the modification date, but not the content or compiler version, amongst other possibilities. #jira UE-52073 Change 3757156 by Guillaume.Abadie Fixes editor compositing with wireframe rendering. #jira UE-52017 Change 3757435 by Mark.Satterthwaite Workaround a bug in the MobileSceneCaptureRendering where it was copying the ViewInfo's ViewRect prior to it being configured by the mobile renderer. #jira UE-52327 Change 3757523 by Uriel.Doyon Fixed d3ddebug warning with unused inputs Change 3758318 by Guillaume.Abadie Cleaner fix for mobile scene captures. #jira UE-52327 Change 3759541 by Mark.Satterthwaite Don't enable Manual Vertex Fetch on iOS Metal for the moment as it isn't well tested there and will probably need further changes. Change 3695086 by Guillaume.Abadie Render thread dynamic resolution & TAA upsample. Merging //Tasks/UE4/Dev-DynamicRes/...@3694528 to //UE4/Dev-Rendering/... New features breakdown: - TAA upsample compute shader that accepts screen percentage from 50% to 200%, with a faster shader permutation for consoles; - Material no longer have to deal with BufferUV, and post process material after TAA upsample can sample any scene buffer seamlessly; - Material texture per view mip bias to produce sharper images with TAA upsample; - Render thread dynamic resolution heuristic is fully plugable by game code (for VR plugin specific heuristics); - Dynamic resolution in PIE and game builds; - Busy time queries in the RHI to be implemented on the different platforms so that the dynamic resolution heuristic can exactly associate GPU frame times with screen percentages in its history; - Game user settings to enable/disable dynamic resolution; - In editor viewport screen percentage config to previsualise and test content at different screen percentage. Fixes: - Various fixes for algorithms producing different outputs at different screen percentage. - Various fixes for algorithms sampling outside view rects. Refactors: - TAA shader - Moved some screen percentage specific members from FSceneView to FViewInfo for thread race bullet proofing. Aknowledgements: - VR plugins are broken - DFAO still have some artifacts Premiliminary review: Marcus.Wassmer Review for TAA refactor and TAA upsample shader: Brian.Karis Review for dynamic resolution: Brian.Karis [CL 3761165 by Chris Bunner in Main branch]
2017-11-16 11:36:35 -05:00
#include "Engine/Engine.h"
#if WITH_EDITOR
#include "Editor/EditorEngine.h" // for UEditorEngine::IsHMDTrackingAllowed()
#endif
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3512802) #lockdown Nick.Penwarden #rb no.one ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3060975 by Ryan.Vance Integrating 3058175 from Oculus Change 3466079 by Nick.Atamas Added rudimentary collision support to MrMesh. Change 3468111 by Mike.Beach Give the SceneRender component's scene view a specific ViewActor (the component's owner). This lets us set bOnlyOwnerSee on components belonging to the same actor, and have it only showup in the render scene view. Change 3468267 by Nick.Atamas Now using non-interleaved data in MRMeshComponent Change 3468475 by Mike.Beach Initial checkin for new mixed reality plugin (WIP). New MixedReality capture component, intended to mimic a real world camera. Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) #jira UEVR-795, UEVR-789 Change 3468483 by Mike.Beach Marking the new MixedReality plugin as experimental (as it is incomplete and a WIP) Change 3468511 by Mike.Beach CIS fixes for fallout from CL 3468475. Change 3469754 by Mike.Beach CIS compiler error fixes (fallout from CL 3468475). Change 3470407 by Mike.Beach *sigh* more CIS fixes (fallout from 3468475) Change 3471494 by Douglas.Copeland Test content for GearVR Stereo Layers Change 3476135 by Jeff.Fisher UE-45661 Duplicate .so files in GoogleVR. -We want the version of each file from the android_x86 style folder, but in the android\x86 folder, and the APL.xml file needed to reference the new path rather than the old path. -This fix was also made in Release-4.16 for 4.16.2 in cl 3476133. #jira UE-45661 #review-3474770 Change 3480446 by Dustin.Holmes Added support for Vive Tracker. #jira UEVR-792 Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3483325 by Nick.Atamas Merging //UE4/Partner-Google-VR to Dev-VR (//UE4/Dev-VR) Known issue with Mac build packaging. Change 3485969 by Nick.Atamas Fixed double-spacing and formatting issues. Converted TangoEcefUtils.cpp to follow Epic coding standards. Change 3486071 by Nick.Atamas Rename/move file(s) from Plugins/Runtime/Tango/... to Plugins/Runtime/GoogleTango/... Change 3486078 by Nick.Atamas Fixed non-portable (wrong case) include path. Change 3486906 by Jeff.Fisher Fixing build warning about a variable being shadowed. Change 3487245 by Jeff.Fisher Fixing build break in some template source files from HeadMountedDisplayFunctionLibrary move. Change 3487827 by Nick.Atamas Fixing the missing platforms header; should resolve CIS warning. Change 3488808 by Keli.Hlodversson Fix vr.Debug.VisualizeTrackingSensors when ViewTarget->HasActiveCameraComponent() is true. Also switched to use GWorld instead of passing in the current World argument to the handler as the world pointer can change for instance if turning the setting on and loading another level in the editor. #jira UE-45949 Change 3490841 by Nick.Atamas Fixing more CIS and coding standard issues related to Tango. Change 3491038 by Nick.Atamas Modified GoogleInstantPreview.Build.cs to use RuntimeDependencies instead of explicit dylib/dll copying. Change 3492481 by Jeff.Fisher Fixing HeadMountedDisplayTypes.h shadowed member warning. Change 3495157 by Mike.Beach New XR modular feature - XRDeviceAssets. Intended to give us access to device models so we can render arbitrary devices. Implements this for SteamVR. #jira UEVR-829 Change 3495205 by Mike.Beach CIS fix (fallout from 3495157) - missing leading 'template<>' for template specializations. Change 3495213 by Mike.Beach Fixing the vr.SpectatorScreenMode CVar so that it's sink function doesn't override other CVar commands that set the mode themselves. #jira UEVR-790 Change 3495403 by Nick.Atamas - Disabled Google Tango support for Win32. - Disabled GoogleInstantPreview files being erroneously included while building game; it is only used by Editor. - Renamed Tango.uplugin -> GoogleTango.uplugin - Fixed self-assignment in TangoImageComponent.cpp Change 3496225 by Mike.Beach Fixing CIS compiler error for non-editor builds (fallout from CL 3495157). Change 3496981 by Nick.Atamas GoogleInstantPreview libraries are now checked into Binaries/ThirdParty/... so that no copying from .Build.cs is necessary. Change 3497033 by Nick.Atamas Going back from GoogleTango/ to Tango/. It's a bigger change that previously thought. Change 3498487 by Nick.Whiting Adding option to PIE settings to NOT minimize editor when doing VR PIE Change 3499242 by Dustin.Holmes Fixed static analysis warning by updating the number of devices that can have their button states tracked. Change 3499341 by Nick.Atamas Hopefully fixes Mac Editor CIS. Change 3499395 by Arciel.Rekman Copying //UE4/Partner-Valve@3499365 to Dev-VR (//UE4/Dev-VR) Change 3499550 by Ryan.Vance Fixing compile issue. Change 3499678 by Nick.Atamas - Dummy Mesh Reconsturctor now sometimes generates empty blocks to test more scenarios. - Removed unused code in DummyMeshReconstructorModule - Removed unused variable in GoogleInstantPreview.Build.cs Change 3499840 by Nick.Atamas std::string needed by google's online system. Change 3499889 by Nick.Atamas Fixed static code analysis CIS fails. Change 3500007 by Nick.Whiting Removing Vulkan RHI dependency on a plugin, refactoring it to use an interface to check to break the dependency Change 3500027 by Nick.Whiting Fixing missing include file in SteamAudio Change 3500030 by Nick.Whiting Changing cast from reinterp to static. Copypasta fail Change 3500078 by Nick.Whiting Speculative fix for the builder for an error that doesn't repro locally Change 3500086 by Nick.Atamas More build fixups. Change 3500096 by Nick.Atamas Copying //UE4/Partner-Google-VR-Minimal at CL3499964 to Dev-VR (//UE4/Dev-VR) Change 3500107 by Nick.Atamas Does this fix CIS? Change 3500121 by Nick.Atamas More CIS fixing, hopefully. Change 3500129 by Nick.Atamas More CIS fixing. Change 3500713 by Nick.Whiting Fix for Win32 build break Change 3500887 by Arciel.Rekman Fixed copyright notices and compilation errors in Steam Audio. (Edigrating CL 3500131) Change 3501010 by Arciel.Rekman Fix shadowing error. Change 3501230 by Nick.Atamas Make warning go away. Change 3501890 by Nick.Atamas Moving Tango->GoogleTango. Fixup pass in next CL. Change 3501900 by Jeff.Fisher UE-46265 Crash attempting to Play in VR -Need to call UpdateSpectatorScreenMode_RenderThread in PreRenderViewFamily_RenderThread so that the mode is set before other renderthread work decides what to do based on the mode. #review-3501882 #jira UE-46256 Change 3502152 by Nick.Whiting Oculus Unified Plugin. OculusHMD plugin now supports both the Rift and the GearVR in one plugin. Minor supporting engine modifications included Change 3502199 by Nick.Atamas Checking in TangoQA project with fixed-up content to point at GoogleTango plugin. Known issue: crash when building cooking collision for bricks with no triangles. Change 3502215 by Nick.Atamas Fixed UIScale curve. Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3502930 by Mike.Beach Attempt to fix build errors (fallout from CL 3502873), using new (moved/renamed) PhysX cook util struct. Change 3503559 by Jeff.Fisher UE-46300 Editor process crashes when opening with Oculus HMD plugged in -Reimplementing spectator screen for updated oculus plugin. #jira UE-46300 #review-3503455 Change 3503685 by Jeff.Fisher TM-SpectatorScreen -made the scene capture component follow the camera orientation so i can make it look at different stuff. Change 3503695 by Nick.Whiting Fixes for build breaks Change 3503819 by Jeff.Fisher TM-SpectatorScreen -Adjusted scene capture and render target to get approximately correct color in the spectator screen. Change 3503852 by Nick.Atamas - Fixed crash when sending a brick with 0 data. - Added implementation to ClearAllBricks. Change 3503947 by Ryan.Vance Fixing overspecified method definitions. Change 3505242 by Douglas.Copeland Added gamepad inputs to SpectatorScreen Level BP for more efficient test setup Change 3505307 by Douglas.Copeland Re-saving Emmissive_Blue Material to resolve map warning Change 3505704 by Ryan.Vance We can't pass a nullptr into RenderTexture_RenderThread. Instead of checking for a mirror window here, the RenderTexture_RenderThread implementation should do the right thing. Jeff's mirrorwindow/socialscreen refactoring should handle this correctly now. Change 3505914 by Jeff.Fisher UE-46370 Ensure handled when restarting Editor after disabling Oculus plugin -remove scaling from the pose if necessary. It appears that when running oculus rift through steamvr the tracking reference comes through at .99 scale. We can't build a quat out of it unless it is normalized. #jira UE-46370 #review-3505892 Change 3506650 by Jack.Porter External Texture fixes changes from Dev-Sequencer - fix ENGINE_API meaning singletons were existing in each module - fix crash releasing an External RHITexture resource. - Recache uniform expressions when external textures are registered and unregistered Change 3506653 by Jack.Porter Remove external texture logging that was accidentally enabled. Change 3507043 by Mike.Beach Fixing CIS content errors (copied material still referencing assets from a separate plugin) - redid the material. Change 3507231 by Ryan.Vance #jira UE-46426 Fail preinit on gearvr if bPackageForGearVR is false Change 3507822 by Jeff.Fisher UE-46445 Player can't move through level by holding one grip button in Editor VR Mode -We were passing worldscalefactor, rather than worldscale into the get controller position function. WorldScaleFactor is worldscale / 100, making it a unitless multiplier of the world scale. So a *magical* 100 needs to be multipled back in here. Oculus must have found that and fixed it, looks like it was broken for 4.16. #jira UE-46445 Change 3508167 by Jeff.Fisher Fixing CheckSlow at startup on Oculus. The head pose orientation was being initialized to zero rather than identity, which isn't so useful. Change 3509622 by Jeff.Fisher Adding commented out null check to commented out implementation of ShouldDisableHiddenAndVisibileAreaMeshForSpectatorScreen_RenderThread. Change 3509983 by Jeff.Fisher Fixing vr.MirrorMode alias to vr.SpectatorScreenMode -was trying to use a cvar that no longer exists Change 3510188 by Ryan.Vance #jira UE-46454 We need to set the render target before applying cached render targets. Change 3510231 by Mike.Beach Setting up redirects for the plugin, since it was renamed from "OculusLibrary" to "OculusHMD" - ensuring that projects don't loose references in Blueprints, etc. #jira UE-46462 Change 3510253 by Ryan.Vance #jira UE-46452 We need to execute the clear before seting up shader state for the copy. Change 3511627 by Mike.Beach Correcting some CIS warnings - Updating misc. GetWorldFromContextObject() calls since the old signature was deprecated by the latest Framework integration. Change 3511984 by Mike.Beach Fixing fallout from integration with Main (CL 3511845)... common shader file renamed (to .ush instead of .usf). Change 3512797 by Mike.Beach Static analysis fix - making doubly sure that we're not indexing into out of bounds memory. Change 3512802 by Mike.Beach Only warning about the OculusHMD module being unavailable when it isn't loaded (otherwise, we were extraneously warning when users didn't have a rift). #jira UE-46575 DONE! [CL 3512933 by Mike Beach in Main branch]
2017-06-27 23:02:31 -04:00
// including interface headers without their own implementation file, so that
// functions (default ctors, etc.) get compiled into this module
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3764848) #lockdown Nick.Penwarden #rb no.one ============================ MAJOR FEATURES & CHANGES ============================ Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3640098 by Mike.Beach Switching the MR capture processing material to use a external sampler now (since that's what media textures are marked as now). Change 3642021 by Mike.Beach Moving so MediaBlueprint header to Public so FMediaCaptureDevice can be used in other BP APIs (in other modules). #jira UEVR-910 Change 3642030 by Mike.Beach [WIP] Refactoring the MR capture component (along with the calibration level) so we can save off a reference to the video stream/format users select (adding a device selection step to calibration). #jira UEVR-910 Change 3645768 by Mike.Beach [WIP] Refining device selection/calibration so it reports which feeds error. #jira UEVR-910 Change 3646047 by Mike.Beach CIS linux fix. Change 3646350 by Mike.Beach [WIP] Provide an ini setting which you can explicitly prioritize a format selection for MR calibration (reflects the list in editor). Change 3664526 by Keli.Hlodversson #jira UE-50100 Updated library revision for GoogleVR Unshelved from pending changelists '3646524', '3646526', '3646528'': Change 3666500 by Keli.Hlodversson Fix -Wreorder compiler warnings Change 3678564 by Douglas.Copeland Updating TM-HMDNodes LEvel BP to replace deprecated Tracking Sensor node Change 3678919 by Mike.Beach Extending and renaming the XRSystemAssets interface. Plus fixing a few bugs found in the SteamVR implementation. Change 3678920 by Mike.Beach Stubbing in Oculus support for a IXRSystemAssets implementation (currently using our own 'unofficial' models from the VREditor). Change 3678922 by Mike.Beach Adding XR Blueprint library functions for accessing specific device information (tracking, modeling, etc.). Change 3678941 by Mike.Beach CIS fixes for Dev-VR (fallout from CL 3678919) Change 3679930 by Mike.Beach Adding native support to MotionController components, for rendering the associated device. Change 3681153 by Mike.Beach Speculative fix for android CIS errors. #jira UE-50776 Change 3697385 by Keli.Hlodversson Fix broken OSVR build after removing IHeadMountedDisplay::GetHMDDeviceType() Change 3697516 by Keli.Hlodversson Fix broken SimpleHMD build after removing IHeadMountedDisplay::GetHMDDeviceType() Change 3698318 by Ryan.Vance Inverse can fail if we don't normalize the player's rotation. Change 3698371 by Keli.Hlodversson GoogleVR projects fail to build: GoogleVRHMD.cpp(1175,110) : error: no member named 'ES2' in 'EShadingPath' #jira UE-51334 Change 3701479 by Mike.Beach Adding the ability to delay motion controller tracking for MR capture views (to better sync with camera feeds). #jira UEVR-908 Change 3703264 by Mike.Beach CIS fixes for linux (fallout from CL 3701479). Change 3703792 by Ryan.Vance Disable mobile multi-view for Daydream if the gvr query for support fails. Change 3704273 by Mike.Beach [WIP] The MRPlugin now auto spawns a MR capture actor if you have a MR config save file. Change 3704524 by Mike.Beach MR Calibration - Enter key can now progress you through some of the prompts. Change 3706679 by Mike.Beach Fixing issue with MotionController display models where the model component wouldn't be destroyed along with the MotionControllerComponent Change 3707538 by Mike.Beach Hiding child actors along with the player in the MR capture. Change 3714120 by Mike.Beach Adding new library function to transform tracking space positions/orientations into world space. And fixing EnumerateTrackedDevices/GetDevicePose, which weren't finding the appropriate tracking system. Change 3716143 by Mike.Beach Speculative fix for XboxOne CIS issues. Change 3719006 by Mike.Beach Removing some debug log spam that I accidently left in CL 3714120. Change 3719774 by Mike.Beach Adding a scoped event name for the rift eye padding draw (so it shows up named in captures like from RenderDoc). Change 3719778 by Mike.Beach Mirroring CL 3671849 from 4.18. Removing Oculus call to reset tracking origin on initialization (so we respect the play space that was calibrated in oculus setup) - ensuring parity w/ Vive (fixing regression). #jira UE-48260 Change 3736279 by Jeff.Fisher Touching a couple files to see if it helps the build machine by making it sync them again. Change 3736296 by Jeff.Fisher Touching another file to kick the build machine into syncing it. Change 3740060 by Ryan.Vance Removing PostInitViewFamily_RenderThread and PostInitView_RenderThread view extension callbacks. Change 3744913 by Mike.Beach Fixing up the MotionDelayBuffer for MixedReality - CIS fix when building for XboxOne - Now works if late updating is disabled - Switched to setting delay in millisecs and interpolating between samples - Better handling for thread managment (was getting out of sync when focus was lost, etc.) - Decoupled more from MotionControllerComponents (now polls separately, and uses its own LateUpdateManager to cache/apply) #jira UEVR-908 Change 3747168 by Jeff.Fisher UEVR-1018 MotionControllerComponent cleanup should be in beginDestroy, not Destructor -Moved ViewExtension cleanup to BeginDestory from destructor. -https://udn.unrealengine.com/questions/395504/strange-crash-in-umotioncontrollercomponent.html #review-3724080 #jira UEVR-1018 Change 3753326 by Douglas.Copeland Resaving qagame content to resolve Empty Engine Version Warning Change 3753336 by Douglas.Copeland Resolving more empty engine version content issues Change 3754252 by Mike.Beach Mirroring CL 3723722 from 4.18.1 Hotfix update from Oculus. - Introduce dash support by adding an Oculus config setting (that is off by default) - Move submission of the near plane╞s depth from a fixed one at texture allocation time to an every-frame one, which is needed for correct depth support in games that have a ⌠god mode÷ with a smaller worldtometersscale #jira UE-51728 Change 3754262 by Mike.Beach Mirroring 3726121 from 4.18.1 Correcting a cpu perf regression from 4.17 - no longer calling FOculusHMDModule::Get() in what should be a cheap query function. #jira UE-51766 Change 3754278 by Mike.Beach Mirroring CL 3741384 from 4.18.1 Fix from Oculus for GearVR crashing/freezing when quit menu is invoked - making sure JNI is attached to the render thread (after losing focus). #jira UE-52098 Change 3754300 by Mike.Beach Mirroring CL 3742608 from 4.18.1 Fix from Oculus - improving perf on GearVR; keeping the window surface from scaling up to a size not required for Gear. #jira UE-52127 Change 3754319 by Mike.Beach Build fix - fallout from blindly adopting CL 3726121 from 4.18.1 w/out fixup (CL 3754262) Change 3755546 by Keli.Hlodversson Marking a zombie header file for delete. Seems to get resurrected from the dead on every merge from main. File is no longer relevant as the OculusAudio plugin has been moved to the Plugins/Runtime/Oculus parent directory. Change 3759716 by Mike.Beach Adopted chenges from Oculus (SI1.20) Manually modified files: - DefaultXRCamera.cpp Rejected changes: - SceneRenderTargets.cpp #jira UE-50855, UE-50883, UE-50950, UE-50974, UE-52427 Change 3760918 by Keli.Hlodversson Disable an ensure that had some false positives during the first few frames. #jira UE-52448 Change 3760946 by Keli.Hlodversson Missing SteamVR changes after deprecating RefreshPoses() #jira UEVR-1037 Change 3762015 by Mike.Beach CIS fix for android - fallout from Oculus 1.20 changes. Lib function was removed, with calls remaining on android (double checking with Oculus that this is the proper fix). Change 3762236 by Ryan.Vance Fixing up integration issues. Change 3763437 by Keli.Hlodversson Fix deprecation warning in SimpleHMD caused by removing RefreshPoses() Change 3764713 by Ryan.Vance #jira UE-52516 PSVR screen percentage was being disabled by default stereo layers on accident. Change 3652413 by Mike.Beach In editor, only utilizing the HMD orientation when we're in a VR related mode (VR preview, VR editor, etc.). Not normalizing view pitch rotation unless we're in one of those modes. #jira UE-46724 Change 3690170 by Keli.Hlodversson Postprocessing now uses only the HMDDistortion flag to see whether a postprocessing pass is required for the current plugin instead of the older clutch that checks the plugin HMD type Added EShaderPath argument to GetHMDDistorionEnabled method so that the edge cases solved by the postprocessor and HMD type now can be handled by the plugins themselves. #jira UEVR-996 Change 3690625 by Keli.Hlodversson Remove IHeadMountedDisplay::GetHMDDeviceType() as it was added as a part of a clutch in postprocessing, but was later getting misused as a poor man's RTI even though a better alternative in IXRTrackingSystem::GetSystemName is already available. #jira UEVR-996 Change 3760773 by Keli.Hlodversson Update interfaces related to late update and begin rendering: * Deprecate RefreshPoses Note: Existing and non-empty RefreshPoses implementations have been made private and non-virtual, and renamed to UpdatePoses in order not to conflict with the still-existing deprecated method in the base interface. * Rename BeginRendering_GameThread/RenderThread to OnBeginRendering_* and move them to IXRTrackingSystem instead of IHeadMountedDisplay. * Add bool DoesSupportLateUpdate() const to IXRTrackingSystem. IXRCamera implementations can use the method to see whether the underlying tracking system implementation supports late update. Note it is up to the IXRTrackingSystem implementations inside each plugin to actually make sure poses are updated somewhere before the late update is applied by the IXRCamera. (eg. in OnBeginRendering_RenderThread or ..._GameThread) * Move call to OnBeginRedering_RenderThread to happen before GetCurrentPose in FXRDefaultCamera so the plugin has a chance to refresh the poses inside its implementation of it. * Add IXRTrackingSystem::OnLateUpdateApplied_RenderThread, a method for notifying the tracking system that late update has been applied, passing in the current relative pose. Used by FXRTrackingSystemBase to pass the updated transform to the stereo layers implementation. #jira UEVR-1037 Change 3761781 by Mike.Beach Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Manually resolved files: - OculusHMD.cpp - OculusHMD_Settings.h/cpp - SteamVRHMD.cpp - PostProcessing.cpp - OrionGame/Plugins/.../OnlineSessionInterface.h/cpp [CL 3766571 by Mike Beach in Main branch]
2017-11-20 12:50:04 -05:00
#include "IXRSystemAssets.h"
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
constexpr float FHeadMountedDisplayBase::PixelDensityMin;
constexpr float FHeadMountedDisplayBase::PixelDensityMax;
FHeadMountedDisplayBase::FHeadMountedDisplayBase(IARSystemSupport* InARImplementation)
: FXRTrackingSystemBase(InARImplementation)
, bHeadTrackingEnforced(false)
{
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
void FHeadMountedDisplayBase::RecordAnalytics()
{
TArray<FAnalyticsEventAttribute> EventAttributes;
if (FEngineAnalytics::IsAvailable() && PopulateAnalyticsAttributes(EventAttributes))
{
// send analytics data
FString OutStr(TEXT("Editor.VR.DeviceInitialised"));
FEngineAnalytics::GetProvider().RecordEvent(OutStr, EventAttributes);
}
}
bool FHeadMountedDisplayBase::PopulateAnalyticsAttributes(TArray<FAnalyticsEventAttribute>& EventAttributes)
{
IHeadMountedDisplay::MonitorInfo MonitorInfo;
GetHMDMonitorInfo(MonitorInfo);
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("DeviceName"), GetSystemName().ToString()));
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("DisplayDeviceName"), *MonitorInfo.MonitorName));
#if PLATFORM_WINDOWS
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("DisplayId"), MonitorInfo.MonitorId));
#else // Other platforms need some help in formatting size_t as text
FString DisplayId(FString::Printf(TEXT("%llu"), (uint64)MonitorInfo.MonitorId));
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("DisplayId"), DisplayId));
#endif
FString MonResolution(FString::Printf(TEXT("(%d, %d)"), MonitorInfo.ResolutionX, MonitorInfo.ResolutionY));
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("Resolution"), MonResolution));
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("InterpupillaryDistance"), GetInterpupillaryDistance()));
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("ChromaAbCorrectionEnabled"), IsChromaAbCorrectionEnabled()));
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3512802) #lockdown Nick.Penwarden #rb no.one ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3060975 by Ryan.Vance Integrating 3058175 from Oculus Change 3466079 by Nick.Atamas Added rudimentary collision support to MrMesh. Change 3468111 by Mike.Beach Give the SceneRender component's scene view a specific ViewActor (the component's owner). This lets us set bOnlyOwnerSee on components belonging to the same actor, and have it only showup in the render scene view. Change 3468267 by Nick.Atamas Now using non-interleaved data in MRMeshComponent Change 3468475 by Mike.Beach Initial checkin for new mixed reality plugin (WIP). New MixedReality capture component, intended to mimic a real world camera. Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) #jira UEVR-795, UEVR-789 Change 3468483 by Mike.Beach Marking the new MixedReality plugin as experimental (as it is incomplete and a WIP) Change 3468511 by Mike.Beach CIS fixes for fallout from CL 3468475. Change 3469754 by Mike.Beach CIS compiler error fixes (fallout from CL 3468475). Change 3470407 by Mike.Beach *sigh* more CIS fixes (fallout from 3468475) Change 3471494 by Douglas.Copeland Test content for GearVR Stereo Layers Change 3476135 by Jeff.Fisher UE-45661 Duplicate .so files in GoogleVR. -We want the version of each file from the android_x86 style folder, but in the android\x86 folder, and the APL.xml file needed to reference the new path rather than the old path. -This fix was also made in Release-4.16 for 4.16.2 in cl 3476133. #jira UE-45661 #review-3474770 Change 3480446 by Dustin.Holmes Added support for Vive Tracker. #jira UEVR-792 Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3483325 by Nick.Atamas Merging //UE4/Partner-Google-VR to Dev-VR (//UE4/Dev-VR) Known issue with Mac build packaging. Change 3485969 by Nick.Atamas Fixed double-spacing and formatting issues. Converted TangoEcefUtils.cpp to follow Epic coding standards. Change 3486071 by Nick.Atamas Rename/move file(s) from Plugins/Runtime/Tango/... to Plugins/Runtime/GoogleTango/... Change 3486078 by Nick.Atamas Fixed non-portable (wrong case) include path. Change 3486906 by Jeff.Fisher Fixing build warning about a variable being shadowed. Change 3487245 by Jeff.Fisher Fixing build break in some template source files from HeadMountedDisplayFunctionLibrary move. Change 3487827 by Nick.Atamas Fixing the missing platforms header; should resolve CIS warning. Change 3488808 by Keli.Hlodversson Fix vr.Debug.VisualizeTrackingSensors when ViewTarget->HasActiveCameraComponent() is true. Also switched to use GWorld instead of passing in the current World argument to the handler as the world pointer can change for instance if turning the setting on and loading another level in the editor. #jira UE-45949 Change 3490841 by Nick.Atamas Fixing more CIS and coding standard issues related to Tango. Change 3491038 by Nick.Atamas Modified GoogleInstantPreview.Build.cs to use RuntimeDependencies instead of explicit dylib/dll copying. Change 3492481 by Jeff.Fisher Fixing HeadMountedDisplayTypes.h shadowed member warning. Change 3495157 by Mike.Beach New XR modular feature - XRDeviceAssets. Intended to give us access to device models so we can render arbitrary devices. Implements this for SteamVR. #jira UEVR-829 Change 3495205 by Mike.Beach CIS fix (fallout from 3495157) - missing leading 'template<>' for template specializations. Change 3495213 by Mike.Beach Fixing the vr.SpectatorScreenMode CVar so that it's sink function doesn't override other CVar commands that set the mode themselves. #jira UEVR-790 Change 3495403 by Nick.Atamas - Disabled Google Tango support for Win32. - Disabled GoogleInstantPreview files being erroneously included while building game; it is only used by Editor. - Renamed Tango.uplugin -> GoogleTango.uplugin - Fixed self-assignment in TangoImageComponent.cpp Change 3496225 by Mike.Beach Fixing CIS compiler error for non-editor builds (fallout from CL 3495157). Change 3496981 by Nick.Atamas GoogleInstantPreview libraries are now checked into Binaries/ThirdParty/... so that no copying from .Build.cs is necessary. Change 3497033 by Nick.Atamas Going back from GoogleTango/ to Tango/. It's a bigger change that previously thought. Change 3498487 by Nick.Whiting Adding option to PIE settings to NOT minimize editor when doing VR PIE Change 3499242 by Dustin.Holmes Fixed static analysis warning by updating the number of devices that can have their button states tracked. Change 3499341 by Nick.Atamas Hopefully fixes Mac Editor CIS. Change 3499395 by Arciel.Rekman Copying //UE4/Partner-Valve@3499365 to Dev-VR (//UE4/Dev-VR) Change 3499550 by Ryan.Vance Fixing compile issue. Change 3499678 by Nick.Atamas - Dummy Mesh Reconsturctor now sometimes generates empty blocks to test more scenarios. - Removed unused code in DummyMeshReconstructorModule - Removed unused variable in GoogleInstantPreview.Build.cs Change 3499840 by Nick.Atamas std::string needed by google's online system. Change 3499889 by Nick.Atamas Fixed static code analysis CIS fails. Change 3500007 by Nick.Whiting Removing Vulkan RHI dependency on a plugin, refactoring it to use an interface to check to break the dependency Change 3500027 by Nick.Whiting Fixing missing include file in SteamAudio Change 3500030 by Nick.Whiting Changing cast from reinterp to static. Copypasta fail Change 3500078 by Nick.Whiting Speculative fix for the builder for an error that doesn't repro locally Change 3500086 by Nick.Atamas More build fixups. Change 3500096 by Nick.Atamas Copying //UE4/Partner-Google-VR-Minimal at CL3499964 to Dev-VR (//UE4/Dev-VR) Change 3500107 by Nick.Atamas Does this fix CIS? Change 3500121 by Nick.Atamas More CIS fixing, hopefully. Change 3500129 by Nick.Atamas More CIS fixing. Change 3500713 by Nick.Whiting Fix for Win32 build break Change 3500887 by Arciel.Rekman Fixed copyright notices and compilation errors in Steam Audio. (Edigrating CL 3500131) Change 3501010 by Arciel.Rekman Fix shadowing error. Change 3501230 by Nick.Atamas Make warning go away. Change 3501890 by Nick.Atamas Moving Tango->GoogleTango. Fixup pass in next CL. Change 3501900 by Jeff.Fisher UE-46265 Crash attempting to Play in VR -Need to call UpdateSpectatorScreenMode_RenderThread in PreRenderViewFamily_RenderThread so that the mode is set before other renderthread work decides what to do based on the mode. #review-3501882 #jira UE-46256 Change 3502152 by Nick.Whiting Oculus Unified Plugin. OculusHMD plugin now supports both the Rift and the GearVR in one plugin. Minor supporting engine modifications included Change 3502199 by Nick.Atamas Checking in TangoQA project with fixed-up content to point at GoogleTango plugin. Known issue: crash when building cooking collision for bricks with no triangles. Change 3502215 by Nick.Atamas Fixed UIScale curve. Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3502930 by Mike.Beach Attempt to fix build errors (fallout from CL 3502873), using new (moved/renamed) PhysX cook util struct. Change 3503559 by Jeff.Fisher UE-46300 Editor process crashes when opening with Oculus HMD plugged in -Reimplementing spectator screen for updated oculus plugin. #jira UE-46300 #review-3503455 Change 3503685 by Jeff.Fisher TM-SpectatorScreen -made the scene capture component follow the camera orientation so i can make it look at different stuff. Change 3503695 by Nick.Whiting Fixes for build breaks Change 3503819 by Jeff.Fisher TM-SpectatorScreen -Adjusted scene capture and render target to get approximately correct color in the spectator screen. Change 3503852 by Nick.Atamas - Fixed crash when sending a brick with 0 data. - Added implementation to ClearAllBricks. Change 3503947 by Ryan.Vance Fixing overspecified method definitions. Change 3505242 by Douglas.Copeland Added gamepad inputs to SpectatorScreen Level BP for more efficient test setup Change 3505307 by Douglas.Copeland Re-saving Emmissive_Blue Material to resolve map warning Change 3505704 by Ryan.Vance We can't pass a nullptr into RenderTexture_RenderThread. Instead of checking for a mirror window here, the RenderTexture_RenderThread implementation should do the right thing. Jeff's mirrorwindow/socialscreen refactoring should handle this correctly now. Change 3505914 by Jeff.Fisher UE-46370 Ensure handled when restarting Editor after disabling Oculus plugin -remove scaling from the pose if necessary. It appears that when running oculus rift through steamvr the tracking reference comes through at .99 scale. We can't build a quat out of it unless it is normalized. #jira UE-46370 #review-3505892 Change 3506650 by Jack.Porter External Texture fixes changes from Dev-Sequencer - fix ENGINE_API meaning singletons were existing in each module - fix crash releasing an External RHITexture resource. - Recache uniform expressions when external textures are registered and unregistered Change 3506653 by Jack.Porter Remove external texture logging that was accidentally enabled. Change 3507043 by Mike.Beach Fixing CIS content errors (copied material still referencing assets from a separate plugin) - redid the material. Change 3507231 by Ryan.Vance #jira UE-46426 Fail preinit on gearvr if bPackageForGearVR is false Change 3507822 by Jeff.Fisher UE-46445 Player can't move through level by holding one grip button in Editor VR Mode -We were passing worldscalefactor, rather than worldscale into the get controller position function. WorldScaleFactor is worldscale / 100, making it a unitless multiplier of the world scale. So a *magical* 100 needs to be multipled back in here. Oculus must have found that and fixed it, looks like it was broken for 4.16. #jira UE-46445 Change 3508167 by Jeff.Fisher Fixing CheckSlow at startup on Oculus. The head pose orientation was being initialized to zero rather than identity, which isn't so useful. Change 3509622 by Jeff.Fisher Adding commented out null check to commented out implementation of ShouldDisableHiddenAndVisibileAreaMeshForSpectatorScreen_RenderThread. Change 3509983 by Jeff.Fisher Fixing vr.MirrorMode alias to vr.SpectatorScreenMode -was trying to use a cvar that no longer exists Change 3510188 by Ryan.Vance #jira UE-46454 We need to set the render target before applying cached render targets. Change 3510231 by Mike.Beach Setting up redirects for the plugin, since it was renamed from "OculusLibrary" to "OculusHMD" - ensuring that projects don't loose references in Blueprints, etc. #jira UE-46462 Change 3510253 by Ryan.Vance #jira UE-46452 We need to execute the clear before seting up shader state for the copy. Change 3511627 by Mike.Beach Correcting some CIS warnings - Updating misc. GetWorldFromContextObject() calls since the old signature was deprecated by the latest Framework integration. Change 3511984 by Mike.Beach Fixing fallout from integration with Main (CL 3511845)... common shader file renamed (to .ush instead of .usf). Change 3512797 by Mike.Beach Static analysis fix - making doubly sure that we're not indexing into out of bounds memory. Change 3512802 by Mike.Beach Only warning about the OculusHMD module being unavailable when it isn't loaded (otherwise, we were extraneously warning when users didn't have a rift). #jira UE-46575 DONE! [CL 3512933 by Mike Beach in Main branch]
2017-06-27 23:02:31 -04:00
EventAttributes.Add(FAnalyticsEventAttribute(TEXT("MirrorToWindow"), IsSpectatorScreenActive()));
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
return true;
}
bool FHeadMountedDisplayBase::IsHeadTrackingEnforced() const
{
return bHeadTrackingEnforced;
}
void FHeadMountedDisplayBase::SetHeadTrackingEnforced(bool bEnabled)
{
bHeadTrackingEnforced = bEnabled;
}
bool FHeadMountedDisplayBase::IsHeadTrackingAllowed() const
{
const bool bTrackingEnabled = IsStereoEnabled() || IsHeadTrackingEnforced();
#if WITH_EDITOR
if (GIsEditor)
{
// @todo vreditor: We need to do a pass over VREditor code and make sure we are handling the VR modes correctly. HeadTracking can be enabled without Stereo3D, for example
UEditorEngine* EdEngine = Cast<UEditorEngine>(GEngine);
return (!EdEngine || EdEngine->IsHMDTrackingAllowed()) && bTrackingEnabled;
}
#endif // WITH_EDITOR
return bTrackingEnabled;
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
IStereoLayers* FHeadMountedDisplayBase::GetStereoLayers()
{
if (!DefaultStereoLayers.IsValid())
{
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
DefaultStereoLayers = FSceneViewExtensions::NewExtension<FDefaultStereoLayers>(this);
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
}
return DefaultStereoLayers.Get();
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3764848) #lockdown Nick.Penwarden #rb no.one ============================ MAJOR FEATURES & CHANGES ============================ Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3640098 by Mike.Beach Switching the MR capture processing material to use a external sampler now (since that's what media textures are marked as now). Change 3642021 by Mike.Beach Moving so MediaBlueprint header to Public so FMediaCaptureDevice can be used in other BP APIs (in other modules). #jira UEVR-910 Change 3642030 by Mike.Beach [WIP] Refactoring the MR capture component (along with the calibration level) so we can save off a reference to the video stream/format users select (adding a device selection step to calibration). #jira UEVR-910 Change 3645768 by Mike.Beach [WIP] Refining device selection/calibration so it reports which feeds error. #jira UEVR-910 Change 3646047 by Mike.Beach CIS linux fix. Change 3646350 by Mike.Beach [WIP] Provide an ini setting which you can explicitly prioritize a format selection for MR calibration (reflects the list in editor). Change 3664526 by Keli.Hlodversson #jira UE-50100 Updated library revision for GoogleVR Unshelved from pending changelists '3646524', '3646526', '3646528'': Change 3666500 by Keli.Hlodversson Fix -Wreorder compiler warnings Change 3678564 by Douglas.Copeland Updating TM-HMDNodes LEvel BP to replace deprecated Tracking Sensor node Change 3678919 by Mike.Beach Extending and renaming the XRSystemAssets interface. Plus fixing a few bugs found in the SteamVR implementation. Change 3678920 by Mike.Beach Stubbing in Oculus support for a IXRSystemAssets implementation (currently using our own 'unofficial' models from the VREditor). Change 3678922 by Mike.Beach Adding XR Blueprint library functions for accessing specific device information (tracking, modeling, etc.). Change 3678941 by Mike.Beach CIS fixes for Dev-VR (fallout from CL 3678919) Change 3679930 by Mike.Beach Adding native support to MotionController components, for rendering the associated device. Change 3681153 by Mike.Beach Speculative fix for android CIS errors. #jira UE-50776 Change 3697385 by Keli.Hlodversson Fix broken OSVR build after removing IHeadMountedDisplay::GetHMDDeviceType() Change 3697516 by Keli.Hlodversson Fix broken SimpleHMD build after removing IHeadMountedDisplay::GetHMDDeviceType() Change 3698318 by Ryan.Vance Inverse can fail if we don't normalize the player's rotation. Change 3698371 by Keli.Hlodversson GoogleVR projects fail to build: GoogleVRHMD.cpp(1175,110) : error: no member named 'ES2' in 'EShadingPath' #jira UE-51334 Change 3701479 by Mike.Beach Adding the ability to delay motion controller tracking for MR capture views (to better sync with camera feeds). #jira UEVR-908 Change 3703264 by Mike.Beach CIS fixes for linux (fallout from CL 3701479). Change 3703792 by Ryan.Vance Disable mobile multi-view for Daydream if the gvr query for support fails. Change 3704273 by Mike.Beach [WIP] The MRPlugin now auto spawns a MR capture actor if you have a MR config save file. Change 3704524 by Mike.Beach MR Calibration - Enter key can now progress you through some of the prompts. Change 3706679 by Mike.Beach Fixing issue with MotionController display models where the model component wouldn't be destroyed along with the MotionControllerComponent Change 3707538 by Mike.Beach Hiding child actors along with the player in the MR capture. Change 3714120 by Mike.Beach Adding new library function to transform tracking space positions/orientations into world space. And fixing EnumerateTrackedDevices/GetDevicePose, which weren't finding the appropriate tracking system. Change 3716143 by Mike.Beach Speculative fix for XboxOne CIS issues. Change 3719006 by Mike.Beach Removing some debug log spam that I accidently left in CL 3714120. Change 3719774 by Mike.Beach Adding a scoped event name for the rift eye padding draw (so it shows up named in captures like from RenderDoc). Change 3719778 by Mike.Beach Mirroring CL 3671849 from 4.18. Removing Oculus call to reset tracking origin on initialization (so we respect the play space that was calibrated in oculus setup) - ensuring parity w/ Vive (fixing regression). #jira UE-48260 Change 3736279 by Jeff.Fisher Touching a couple files to see if it helps the build machine by making it sync them again. Change 3736296 by Jeff.Fisher Touching another file to kick the build machine into syncing it. Change 3740060 by Ryan.Vance Removing PostInitViewFamily_RenderThread and PostInitView_RenderThread view extension callbacks. Change 3744913 by Mike.Beach Fixing up the MotionDelayBuffer for MixedReality - CIS fix when building for XboxOne - Now works if late updating is disabled - Switched to setting delay in millisecs and interpolating between samples - Better handling for thread managment (was getting out of sync when focus was lost, etc.) - Decoupled more from MotionControllerComponents (now polls separately, and uses its own LateUpdateManager to cache/apply) #jira UEVR-908 Change 3747168 by Jeff.Fisher UEVR-1018 MotionControllerComponent cleanup should be in beginDestroy, not Destructor -Moved ViewExtension cleanup to BeginDestory from destructor. -https://udn.unrealengine.com/questions/395504/strange-crash-in-umotioncontrollercomponent.html #review-3724080 #jira UEVR-1018 Change 3753326 by Douglas.Copeland Resaving qagame content to resolve Empty Engine Version Warning Change 3753336 by Douglas.Copeland Resolving more empty engine version content issues Change 3754252 by Mike.Beach Mirroring CL 3723722 from 4.18.1 Hotfix update from Oculus. - Introduce dash support by adding an Oculus config setting (that is off by default) - Move submission of the near plane╞s depth from a fixed one at texture allocation time to an every-frame one, which is needed for correct depth support in games that have a ⌠god mode÷ with a smaller worldtometersscale #jira UE-51728 Change 3754262 by Mike.Beach Mirroring 3726121 from 4.18.1 Correcting a cpu perf regression from 4.17 - no longer calling FOculusHMDModule::Get() in what should be a cheap query function. #jira UE-51766 Change 3754278 by Mike.Beach Mirroring CL 3741384 from 4.18.1 Fix from Oculus for GearVR crashing/freezing when quit menu is invoked - making sure JNI is attached to the render thread (after losing focus). #jira UE-52098 Change 3754300 by Mike.Beach Mirroring CL 3742608 from 4.18.1 Fix from Oculus - improving perf on GearVR; keeping the window surface from scaling up to a size not required for Gear. #jira UE-52127 Change 3754319 by Mike.Beach Build fix - fallout from blindly adopting CL 3726121 from 4.18.1 w/out fixup (CL 3754262) Change 3755546 by Keli.Hlodversson Marking a zombie header file for delete. Seems to get resurrected from the dead on every merge from main. File is no longer relevant as the OculusAudio plugin has been moved to the Plugins/Runtime/Oculus parent directory. Change 3759716 by Mike.Beach Adopted chenges from Oculus (SI1.20) Manually modified files: - DefaultXRCamera.cpp Rejected changes: - SceneRenderTargets.cpp #jira UE-50855, UE-50883, UE-50950, UE-50974, UE-52427 Change 3760918 by Keli.Hlodversson Disable an ensure that had some false positives during the first few frames. #jira UE-52448 Change 3760946 by Keli.Hlodversson Missing SteamVR changes after deprecating RefreshPoses() #jira UEVR-1037 Change 3762015 by Mike.Beach CIS fix for android - fallout from Oculus 1.20 changes. Lib function was removed, with calls remaining on android (double checking with Oculus that this is the proper fix). Change 3762236 by Ryan.Vance Fixing up integration issues. Change 3763437 by Keli.Hlodversson Fix deprecation warning in SimpleHMD caused by removing RefreshPoses() Change 3764713 by Ryan.Vance #jira UE-52516 PSVR screen percentage was being disabled by default stereo layers on accident. Change 3652413 by Mike.Beach In editor, only utilizing the HMD orientation when we're in a VR related mode (VR preview, VR editor, etc.). Not normalizing view pitch rotation unless we're in one of those modes. #jira UE-46724 Change 3690170 by Keli.Hlodversson Postprocessing now uses only the HMDDistortion flag to see whether a postprocessing pass is required for the current plugin instead of the older clutch that checks the plugin HMD type Added EShaderPath argument to GetHMDDistorionEnabled method so that the edge cases solved by the postprocessor and HMD type now can be handled by the plugins themselves. #jira UEVR-996 Change 3690625 by Keli.Hlodversson Remove IHeadMountedDisplay::GetHMDDeviceType() as it was added as a part of a clutch in postprocessing, but was later getting misused as a poor man's RTI even though a better alternative in IXRTrackingSystem::GetSystemName is already available. #jira UEVR-996 Change 3760773 by Keli.Hlodversson Update interfaces related to late update and begin rendering: * Deprecate RefreshPoses Note: Existing and non-empty RefreshPoses implementations have been made private and non-virtual, and renamed to UpdatePoses in order not to conflict with the still-existing deprecated method in the base interface. * Rename BeginRendering_GameThread/RenderThread to OnBeginRendering_* and move them to IXRTrackingSystem instead of IHeadMountedDisplay. * Add bool DoesSupportLateUpdate() const to IXRTrackingSystem. IXRCamera implementations can use the method to see whether the underlying tracking system implementation supports late update. Note it is up to the IXRTrackingSystem implementations inside each plugin to actually make sure poses are updated somewhere before the late update is applied by the IXRCamera. (eg. in OnBeginRendering_RenderThread or ..._GameThread) * Move call to OnBeginRedering_RenderThread to happen before GetCurrentPose in FXRDefaultCamera so the plugin has a chance to refresh the poses inside its implementation of it. * Add IXRTrackingSystem::OnLateUpdateApplied_RenderThread, a method for notifying the tracking system that late update has been applied, passing in the current relative pose. Used by FXRTrackingSystemBase to pass the updated transform to the stereo layers implementation. #jira UEVR-1037 Change 3761781 by Mike.Beach Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Manually resolved files: - OculusHMD.cpp - OculusHMD_Settings.h/cpp - SteamVRHMD.cpp - PostProcessing.cpp - OrionGame/Plugins/.../OnlineSessionInterface.h/cpp [CL 3766571 by Mike Beach in Main branch]
2017-11-20 12:50:04 -05:00
bool FHeadMountedDisplayBase::GetHMDDistortionEnabled(EShadingPath /* ShadingPath */) const
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
{
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
return true;
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
}
FVector2D FHeadMountedDisplayBase::GetEyeCenterPoint_RenderThread(const int32 ViewIndex) const
{
check(IsInRenderingThread());
// Note: IsHeadTrackingAllowed() can only be called from the game thread.
// IsStereoEnabled() and IsHeadTrackingEnforced() can be called from both the render and game threads, however.
if (!(IsStereoEnabled() || IsHeadTrackingEnforced()))
{
return FVector2D(0.5f, 0.5f);
}
const FMatrix StereoProjectionMatrix = GetStereoProjectionMatrix(ViewIndex);
//0,0,1 is the straight ahead point, wherever it maps to is the center of the projection plane in -1..1 coordinates. -1,-1 is bottom left.
const FVector4 ScreenCenter = StereoProjectionMatrix.TransformPosition(FVector(0.0f, 0.0f, 1.0f));
//transform into 0-1 screen coordinates 0,0 is top left.
const FVector2D CenterPoint(0.5f + (ScreenCenter.X / 2.0f), 0.5f - (ScreenCenter.Y / 2.0f));
return CenterPoint;
}
void FHeadMountedDisplayBase::OnLateUpdateApplied_RenderThread(FRHICommandListImmediate& RHICmdList, const FTransform& NewRelativeTransform)
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
{
if (DefaultStereoLayers.IsValid())
{
DefaultStereoLayers->UpdateHmdTransform(NewRelativeTransform);
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
}
void FHeadMountedDisplayBase::CalculateStereoViewOffset(const int32 ViewIndex, FRotator& ViewRotation, const float WorldToMeters, FVector& ViewLocation)
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
{
GetXRCamera()->CalculateStereoCameraOffset(ViewIndex, ViewRotation, ViewLocation);
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3636795) #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 2932765 by Nick.Whiting Merging updated license files for Oculus libraries Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3513736 by Keli.Hlodversson Move duplicated late update code into a common FLateUpdateManager #jira UEVR-893 Change 3514798 by Mike.Beach #4.17 Exposing a way for Blueprint users to remap the SteamVR controller's d-pad buttons (clashes with the Oculus mappings). #jira UE-42634 Change 3516042 by Dustin.Holmes Runtime handedness changes in Vive controllers are now reflected when a new device is connected. Device mappings are also reset when a device disconnects, so that if it connects again it fully reregisters instead of just assuming the role it previously had. Change 3517781 by Keli.Hlodversson Remove unused local variable bUseCustomPresentTexture Change 3517951 by Mike.Beach #4.17 Guarding against dereferencing a null pointer. Defaulting to the identity when we don't (yet) have a valid head pose to use. #jira UE-43685 Change 3518142 by Mike.Beach #4.17 Resolving fallout from bad merge (CL 3514868) - checking for teminating null in array (which was added to keep ARRAY_COUNT from acting on an empty array). Change 3523183 by Ryan.Vance #jira UE-46493, UEVR-661 Fixes GearVR only displaying a black screen on startup Fixes GearVR rendering incorrectly with mobile multi-view w/o direct mode enabled Adding mobile multi-view direct support to Daydream Change 3523718 by Nick.Whiting Adding core controller recentering delegate, and moving Google over to that system. Change 3527263 by Dan.Oconnor Mirror 3526925 for Nick Donaldson Change 3533596 by Dustin.Holmes Add garbage matte map, gamemode, and blueprints. Change 3533598 by Dustin.Holmes Expose the Set Tint Color and Opacity function for Widget Components as a Blueprint node. Change 3538139 by Mike.Beach Moving Oculus debug shader directly into Oculus plugin. #jira UE-47134 Change 3543185 by Nick.Atamas Address UEVR-891 : Merge in changes to Google Tango plugin. #jira UEVR-891 Change 3543285 by Nick.Atamas Merging using //UE4/Release-4.17/... -> //UE4/Dev-VR/... : Fixed UEVR-852: Adjusted Google Tango Plugins copyright to Copyright Google 2017. Removed Apache 2.0 license. Change 3545505 by Nick.Atamas Fix UEVR-851 : some fix-ups to MeshReconHUD and overlay material now has a material parameter for tinting the reconstructed mesh to help debug visualization. Change 3547549 by Jeff.Fisher Fixing DefaultSpectatorScreenController comment. Change 3551339 by Ryan.Vance #jira UE-44947 Editor primitives we not being handled correctly with ISR. Change 3554169 by Dustin.Holmes Reconcile missed Mixed Reality blueprint Change 3566825 by Mike.Beach Fixing some bad merges from Main (fallout from CL 3566309) Change 3567143 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3567572 by Mike.Beach [WIP] Adding some MR plugin dependencies to keep CIS quiet (SteamVR is just temporary, and will be removed). Change 3569116 by Jeff.Fisher Mixed reality build breaks for PS4 -Module is dependent on steamvr, so don't build it for PS4. -Removed unused class that doesn't compile with clang. Change 3569362 by Mike.Beach Organizing MR plugin content, to make way for new calibration modes. Change 3572802 by Jeff.Fisher UEVR-832 Add save/load system for calibrated camera settings -Moved MixedRealityConfigurationSaveGame to c++. #review-3571779 #jira UEVR-832 Change 3573864 by Mike.Beach [WIP] Initial work on MR cam alignment controller - records point/frustum data from user input. Change 3575900 by Jeff.Fisher Vive spectator flat rect expanded to match other platforms. -The vive 'full flat eye' rect was narrower than other platforms. Expanded it to be closer to the other platforms. Change 3578684 by Mike.Beach Static analysis fixes for CIS. #jira UE-48204, UE-48203, UE-48206 Change 3579460 by Mike.Beach [WIP] New calibration mode for camera alignment. #jira UEVR-785 Change 3581232 by Mike.Beach [WIP] Saving off alignment calibration data, and loading it on initialization. We skip alignment calibration if it has been configured. #jira UEVR-832 Change 3588411 by Mike.Beach [WIP] Adding calibration for compositing (chroma color, etc.). #jira UEVR-785 Change 3588541 by Mike.Beach [WIP] Cleaning up some display issues with the MR calibration. #jira UEVR-785 Change 3588680 by Mike.Beach Re-organizing the MR content, now that the alignment controller calibrates more than just alignment (renaming, etc.). Change 3588694 by Mike.Beach Renaming the MR calibration pawn (since it doesn't do any calibrating itself). Change 3591518 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3591671 by Ryan.Vance Debug stereo layer support This adds an option to render the debug canvas to a stereo layer which greatly improves console and stat readability in an hmd. Change 3591812 by Ryan.Vance Don't snap motion controllers to the origin when tracking is lost. Change 3594681 by Mike.Beach [WIP] Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3596679 by Mike.Beach CIS fix (likely fallout from CL 3591671) - changing the order of initialization to better match the order of declaration. Change 3598191 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Created MixedRealityGarbageMatteCaptureComponent. An instance of this is spawned by and attached to MixedRealityCaptureComponent. Saved config data is loaded into it. It spawns a garbage matte actor. It then captures the garbage matte actor into a render target (which is set on MixedRealityCaptureComponent). #jira UEVR-807 #review-3598179 Change 3598276 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3598332 by Mike.Beach Guarding against a blind cast in the SteamVRChaperone component, which can be used cross platform (can't assume SteamVR). Change 3605271 by Mike.Beach Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3608490 by Jeff.Fisher UEVR-987 Social Screen PS4 need to go to 'mirroring' for hmd setup dialog because system dialogs are not visible in separate mode. UEVR-988 SpectatorScreen Flickering UE-47234 Spectator screen: need frame delay before assigning dynamically created rendertarget to spectator texture UE-47310 Spectator Screen: crash if you release a render target which is assigned as the spectator texture -Test level content for all of these bugs. Change 3608883 by Jeff.Fisher UEVR-807 Setup M_MRVidProcessing to use 3D garbage matte data. -Set material to use the garbage matte render target. Change 3613292 by Mike.Beach Moving header fcn decl up, under the proper interface section (for organization's sake). Change 3616943 by Nick.Whiting Updating SteamVR libraries to 1.0.9, so we can bring back macOS support Change 3616970 by Nick.Whiting Adding in steamvr visible area mesh support. Can be toggled with vr.SteamVR.UseVisibleAreaMesh Change 3617866 by Mike.Beach Updating the VR template to reflect Oculus HMD device naming that we've keyed off of in these Blueprints (when determining which VR system we're running on). Change 3620108 by Mike.Beach [WIP] Adding an intermediate calibration step to tweak the MR virtual cam's alignment. Change 3620982 by Mike.Beach Tying off some loose ends with the MR calibration map: * Saving after each calibration phase * Fixing blocked input from garbage matte creation * Blocking input handling while exiting/previewing * Adding minimum radius for random screen pt Change 3621551 by Mike.Beach [MR] Leveraging camera support in the new media framework - working for limited cameras in calibration. Change 3621552 by Mike.Beach [MR calibration] - fixing it so when you first switch into compoisiting calibration it updates the property readout. Change 3621660 by Mike.Beach [MR calibration] Cleaning up how we display text (adding a struct to wrap the coresponding properties). Change 3623323 by Dustin.Holmes Fix buffer overflow when using 5+ Vive generic trackers and add more Special hand designations to cover the maximum 11 trackers Vive supports Change 3625900 by Keli.Hlodversson Remove fixed 16:9 aspect ratio for SteamVR and Oculus splash screens. Oculus was already fixed in CL#3413801, but regressed with plugin renaming and unificiation with GearVR in CL#3502152. #jira UE-40220 StereoLayer splash layers are hardcoded to 8 by 4.5 meters (16:9 aspect ratio) Change 3628409 by Mike.Beach Speculative CIS fix. #jira UE-49339 Change 3628440 by Nick.Whiting Fix for SteamVR OSX build issues Change 3628489 by Nick.Whiting Fix for win32 build break Change 3629045 by Mike.Beach Shadowed variable name fix (CIS). Change 3629202 by Arciel.Rekman Copying //UE4/Partner-Valve@3629179 to Dev-VR (//UE4/Dev-VR) Change 3629340 by Nick.Atamas Unshelved and resolved changes from Oculus. Change 3629772 by Ryan.Vance Fixing Oculus Vulkan related compile issues. This will break Oculus Vulkan support, but the code needs to be refactored anyway. Change 3629833 by Mike.Beach Fixing up CIS warning introduced by Oculus 1.17 changes - "unsafe conversion" warning #jira UE-49376 Change 3630696 by Jeff.Fisher UE-49415 //UE4/Dev-VR: Incremental UE4Editor Win64 completed with errors - 5 Errors Switching an include to a forward declaration -Not sure why the previous version didn't compile on the build machine, but fewer dependencies is good. Change 3630783 by Mike.Beach Fixing CIS compiler failures for our vehicle templates. #jira UE-49417 Change 3630802 by Mike.Beach Better fix than 3630783 - updating the vehicle template's stereoscopic check (fixing the VehicleHud.cpp logic as well) #jira UE-49417 Change 3630870 by Mike.Beach Pragma'ing out a function pointer cast warning. Good warning, but I figure we know what we're doing here and there's no other way around it. #jira UE-49376 Change 3630993 by Ryan.Vance Check to ensure we have a valid third camera before trying to use it. We could check >= 3 or if the left and right cameras are left/right stereo etc. decided to go with the simple test for now. Change 3631322 by Jeff.Fisher UEVR-909 PIP in Garbage Matte -Added ExternalGarbageMatteActor to MixedRealityGarbageMatteCaptureComponent and exposed it to blueprint though MixedRealityCaptureComponent. This lets us switch from using the normal mixed reality component save/load garbage matte data and instead use an external actor, in this case the actor we use to setup the garbage matte. Then the mask is able to capture that actor live as it is edited. -Also implemented GetViewOwner() so that we can use SetOwnerOnlySee to prevent other cameras and captures from seeing the garbage matte actor. -Calibration level now uses the external garbage matte actor to let the garbate matte mask live update. It also does a picture-in-picture preview of the mixed reality scene. 'P' can show/hide the garbage matte actor on that PIP preview. -Added SetUnmaskedPixelHighlightColor to MixedRealityCaptureComponent and the material. With this one can make unmasked video pixels more obvious in the output. The calibration level has this mapped to shift-P and makes pixels bright yellow to white. -Added blueprint to calibration level to make the garbage matte actor visible in the mixed reality capture. That is bound to ctrl-g. -GarbageMatteActors spawned by the mixed reality capture component are now attached to the vr origin. The calibration level now saves garbage matte mesh transforms relative to the vr origin. -The garbage matte mesh is now plugin content, and is referenced in the mixedrealitycomponent default object, so it is cooked in any project that includes the plugin. -Fog and AtmosphericFog no longer affect the garbage matte mask capture... there may be other things we need to turn off there. #review-3618345 #jira UEVR-909 Change 3631362 by Keli.Hlodversson #jira UE-49418 Exiting Google Instant Preview displays half of the editor viewport as black. Note convoluted fix: passing bIsStereoScopic3D to IsActiveThisFrame. ISceneViewExtension code cannot rely on StereoRenderingDevice->IsStereoEnabled to know whether to render in stereo, as the current viewport widget may disable it. This was not a problem before the refactoring, as HMD-related viewextensions were only added to the active list after establishing that stereo indeed was enabled and allowed by the current view port widget. Change 3631887 by Jeff.Fisher Fixing IsActiveThisFrame build break. Change 3632206 by Nick.Atamas Fix for UE-49413. Registering FOculusHMD as an extensions the same way as others: now creates an XRCamera that passes all the calls back to the HMD. Change 3632264 by Nick.Whiting Fix for Vive rendering getting cropped off due to invalid subrect values being submitted to the compositor. Change 3632340 by Nick.Atamas Merged in change from Loren; opted for our solution to ViewExtensions instead of the one in the changelist. Original description below. Change 3632214 by Loren.McQuade@Loren.McQuade_Dev-VR on 2017/09/07 19:51:29 *pending* [Dev-VR] Added OculusHMD_SceneViewExtension, PlayerPosition/PlayerOrientation values, FOculusHMD::GetRelativeEyePose cross-eyed madness (CL 3631541, 3631687) Change 3632353 by Ryan.Vance #jira UE-49468 Don't apply xr camera rotation on the player controller when not using xr tracking. Change 3632735 by Keli.Hlodversson Better fix for #jira UE-49413. Revert oculus xr camera code and use that one can have more than one view extension registered instead. Use GetPriority to have the OculusHMD view extension code execute after the default xr camera. The xr camera subclass did not forward the calls to ISceneViewExtension to the parent, breaking various functionality such as late update. Fixes a crash when entering VR pie twice, back to back. Change 3632752 by Keli.Hlodversson Applying change 3632592 by Loren.McQuade@Loren.McQuade_Dev-VR_Branch on 2017/09/08 02:08:22 [Dev-VR] Push //UE4/Partner-Oculus@3632591 #rb merge //UE4/Partner-Oculus to //UE4/Dev-VR/... Reverted OculusHMD_XRCamera changes, as that clas has been removed in the interim. Change 3633211 by Mike.Beach Backing out Oculus MotionController hiding that accidently got submitted - we decided not to adopt this change originally. Change 3633315 by Jeff.Fisher merge from main with dev-platform problem children -expecting SDRBackBuffer stuff to be wrong. Change 3634006 by Mike.Beach Resurecting Oculus clip plane settings which got dropped in the IXR refactor. #jira UE-49520 Change 3634639 by Keli.Hlodversson Avoid include cycle https://ec-01.epicgames.net/commander/link/jobStepDetails/jobSteps/68863219?stepName=UE4Editor%20Static%20Analysis%20Win64%20%28IncludeTool%29&jobId=7995809&jobName=UE4%20Dev-VR%20-%20CL%203632752%20-%20Nightly%20Build&tabGroup=diagnosticHeader&firstPage=1 Change 3634641 by Jeff.Fisher UE-49535 Lighting is blown out when playing in VR Preview on Vive -Need pixel format to be PF_B8G8R8A8 for vr, now the plugins all build their render target and use that format. #review-3634623 Change 3634682 by Jeff.Fisher IHeadMountedDisplay forward declarations needed. Change 3634690 by Ryan.Vance We can't override the screen percentage when rendering for stereo #jira UE-49287 Change 3635970 by Keli.Hlodversson #jira UE-49563 Crash while opening QA-Game Referencing SharedPointer.h Verify that StereoRendering is valid before calling IsStereoEnabled() Change 3635979 by Mike.Beach CIS static analysis fix - checking a ptr for null before we use it. #jira UE-49531 Change 3636059 by Mike.Beach Fixing XR system name aliasing for the -hmd command. [CL 3638830 by Ryan Vance in Main branch]
2017-09-12 11:27:30 -04:00
}
void FHeadMountedDisplayBase::InitCanvasFromView(FSceneView* InView, UCanvas* Canvas)
{
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3383750) #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 3012064 on 2016/06/13 by Nick.Whiting Merging Main -> DevVR Change 3048060 on 2016/07/13 by Nick.Whiting Integrating CL 3045721 from //depot/Partners/Google/AndroidVR-DevVR Upgrade Android and iOS GVR SDK to the latest. Fix the flipped vignette issue when using Unreal's post processing distortion. Change the Daydream & Cardboard mode to use scanline racing. Deprecate the ability to turn off individual UI elements. Change 3235307 on 2016/12/14 by Keli.Hlodversson Filter out excluded HMD modules during FEngineLoop:PreInitHMDDevice. The final selection still happens in UEngine::InitializeHMDDevice as all HMD plugins have not been loaded during PreInit Change 3235308 on 2016/12/14 by Ryan.Vance #jira UEVR-478 Monoscopic far field improvements Shader changes are now gated behind the read only cvar vr.MonoscopicFarField. Changing this requires a shader compile. Moved the mono rendering mode to the cvar vr.MonoscopicFarFieldMode. This is writable, so users can enable/disable mono rendering on the fly if the above cvar is enabled. Only write to the alpha channel in the mobile base pass if the object is opaque and MONOSCOPIC_FAR_FIELD is defined. Addressed code review comments. Change 3235397 on 2016/12/14 by Keli.Hlodversson [Oculus] Only enable GearVR platform on Windows if Oculus service is running Original author: Loren.McQuade Change 3235762 on 2016/12/14 by Keli.Hlodversson Add explicit parentheses to placate the build bots. Change 3242318 on 2016/12/21 by Ryan.Vance Working around pixel density crash. Change 3242522 on 2016/12/21 by Ryan.Vance Missing flag clear so our adaptive test was always returning true. Change 3243173 on 2016/12/22 by Ryan.Vance Integrating post present callback implementation from 4.14.1 Change 3248633 on 2017/01/05 by Keli.Hlodversson Copying //Tasks/UE4/Dev-VR-Refactoring to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) Change 3248723 on 2017/01/05 by Keli.Hlodversson Fix after merge. EnablePositionalTracking no longer exists. Change 3249484 on 2017/01/06 by Keli.Hlodversson Add missing includes Change 3249714 on 2017/01/06 by Keli.Hlodversson Remove monolithic header include Change 3249980 on 2017/01/06 by Keli.Hlodversson SteamVR: Remove leftover unused WindowMirrorMode member variable Change 3252432 on 2017/01/10 by Keli.Hlodversson Submitting change by Loren McQuade to fix monolithic builds. Unshelved from pending changelist '3251436': Change 3257373 on 2017/01/13 by Keli.Hlodversson #jira UEVR-411: Finish renaming/removing/remodelling the remaining Oculus (Rift+GearVR) commands #jira UEVR-412: Rename and merge remaining Morpheus console commands #jira UEVR-417: Remove Exec from IHeadMountedDisplay Change 3269971 on 2017/01/24 by Jeff.Fisher UEVR-498 move controller is missing world to meters UEVR-522 PS4 motion controller worldscale support. -Passing world to meters scale into getControllerOrientationAndPosition because the thing asking about it ought to be part of a world, and know what it should be. This also avoids making PS4 motion controllers dependent on the HMD. Note Google VR Controller doesn't do position, so doesnt' care about scale. Oculus already had internal threadsafe tracking of world scale, so I left that. Steam handles world scale below our input level. -Also adding PlayerIndex member to FSceneView so we can figure out which view the MotionControllerComponent should get its worldscale from for the late render thread update. #jira UEVR-498 #review-3384107 Change 3288308 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity -PS4 can only track 2 controllers and 1 hmd. Support for dealing with that is needed. -Also need to support multiple motion controller components mapped to a single controller. Licencees have done that before. -Created a new interface IMotionTrackingSystemManagement, and implements it for PS4Tracker on PS4. -Created a MotionTrackedDeviceFunctionLibrary to expose that interface to blueprint. -With those one can enable and disable tracking on ps4 controllers and query their state to stay within the controller tracking limit. -PS4Tracker also keeps a blackboard of the enable/disable state so that one can enable or disable controllers that have not been connected yet, and have them enable tracking or not when they are connected. -DS4 controller no longer jumps back to 000 if it loses tracking. #review-3384107 #jira UEVR-517 Change 3288309 on 2017/02/06 by Keli.Hlodversson Add file missing from CL#3257373. Change 3288311 on 2017/02/06 by Jeff.Fisher UEVR-517 Detect MotionController Connectivity - Test content. -tm-motionControllers has a third mode where all playstation motion controllers for player 0 are availalbe. You can toggle them to track or not with ctrl-P,G,L,R for pad, gun, leftmove, rightmove or with alt-P,G,L,R. Ctrl tests doing so via MotionControllerComponent. Alt tests doing so by player index and controller type enum. -ctrl-A disables tracking of all controllers -alt-A disables tracking of all controllers for player 0 -ctrl-D toggles enabling new controllers by default -Also fixed one button not working in one of the other test modes for the Aim (gun) controller. -The controller 'models' have an arrow out the front. It is black if disabled. Red if enabled, but no tracker is active, yellow if tracked but inertial only, and green if fully tracked by the camera. -This logic is in the QA_MoCoAll blueprint. Change 3291601 on 2017/02/07 by Jeff.Fisher UEVR-536 PSVR motion controller tracking problem with multiple controllers -Previous code called GetRelativeTransform from the render thread, but the game thread could update it at any time. This caches that transform so that it can be safely used in the render thread. #jira UEVR-536 #review-3384107 @Ryan.Vance Change 3292460 on 2017/02/08 by Jeff.Fisher PS4 sceVrTrackerGetResult() error warning logging improved, and explanatory comment added. Change 3308771 on 2017/02/17 by Keli.Hlodversson Rename GoogleVR console commands #jira UEVR-412 Change 3309156 on 2017/02/17 by Keli.Hlodversson Track changes in r.ScreenPercentage on GoogleVR and set RenderTargetSize accordingly. Change 3311999 on 2017/02/20 by Keli.Hlodversson Create a default implementation for RecordAnalytics. Also create an initial stub for FHeadMountedDisplayBase for future default implementations of common HMD functionality. Make implementing IHeadMountedDisplay::GetDeviceName mandatory instead of defaulting to "Unknown" #jira UE-21878 #jira UEVR-213 Change 3313467 on 2017/02/20 by Ryan.Vance #jira UE-41604 3278583 pCustomPresent->AllocateRenderTargetTexture may return false, if we blindly return true we can end up with an invalid render target since the fall back sceneviewport will be skipped. 3278536 Adding ovrError_NoHmd to our sanity check in OnStartGameFrame. Change 3314002 on 2017/02/21 by Keli.Hlodversson Fix compilation on PS4 and Linux Change 3326722 on 2017/03/01 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Integrating 4.15 from main. Change 3327567 on 2017/03/01 by Jeff.Fisher UEVR-588 Oculus crash on "stereo on" when the proximity sensor is not triggered. Duplicating from Release-4.15 cl 3327481, 3327542 -Don't ovr_SubmitFrame when the layers need to be recreated. They stay dirty until rendering is unpaused. #jira UEVR-588 #review-3384107 Change 3328098 on 2017/03/01 by Jeff.Fisher 4.15 merge fixes -Fixed deprecated enum name function usage. -Fixed world scale usage in GoogleVRController. -Fixed compile break in PS4Tracker. Change 3328271 on 2017/03/01 by Jeff.Fisher 2.15 merge -restroging GoogleVRController::GetWorldToMetersScale... cause it is used everywhere. Change 3328307 on 2017/03/01 by Jeff.Fisher 4.15 merge -More googlevr worldscale fixes. Change 3328312 on 2017/03/01 by Jeff.Fisher 4.15 merge -removing 2 unused includes Change 3330610 on 2017/03/02 by Jeff.Fisher 4.15 merge -fixing linux build Change 3333952 on 2017/03/06 by Keli.Hlodversson Implement common stereo layer management base class and use it in SteamVR and PS4. Fixes an outstanding bug in SteamVR where texures are updated every frame regardles of whether the continous update flag is set or not. #jira UEVR-628 #jira UE-42555 Change 3334961 on 2017/03/07 by Keli.Hlodversson Add missing include to fix non-unity builds Change 3336200 on 2017/03/07 by Keli.Hlodversson Fix compilation issues. (https://ec-01.epicgames.net/commander/link/jobDetails/jobs/7568252?jobName=UE4+Dev-VR+-+CL+3334961+-+Nightly+Build&s=Jobs) * Pre VS2015 compilers don't like mixing wide and unmarked strings in concatenation. Unfortunately LOCTEXT hides the call to the TEXT macro, completely hinding the prefix (which only gets added to the first fragment.) * Switch apparently doesn't know how to format a size_t for analytics either. Also: Typo in backwards compatibility command name alias Change 3337347 on 2017/03/08 by Jeff.Fisher UE-42631 Stereo off while prox sensor uncovered causes low framerate -Setting maxfps appropriately on 'stereo on/off'. #review-3384107 #jira UE-42631 Change 3338385 on 2017/03/08 by Ryan.Vance r.DisableDistortion was only being used for the mobile renderer Change 3342301 on 2017/03/10 by patrickr.donovan Test updates to TM-VRSmoke. Increased lightmap resolution on QA_MeshTypes meshes to improve readbility and reliablility of tests involving said asset. Rebuilt lighting. Change 3348133 on 2017/03/15 by Ryan.Vance Moving mono cvars to scene rendering to avoid cross module references. There's not a good reason to have them in the hmd module anyway. Change 3348836 on 2017/03/15 by Ryan.Vance Direct multi-view support for gear vr Monoscopic far field with multi-view (blit and direct) support for gear vr Support for translucent objects on both sides of the mono clip plane (due to a sorting issue, objects that straddle the plane composite incorrectly) Fixed missing discards/clears in the multi-view blit Change 3348843 on 2017/03/15 by Ryan.Vance Fixing color/depth target size mismatch when screen percentage scaling results in a size that isn't divisible by 16. Change 3349276 on 2017/03/16 by Keli.Hlodversson Fixing compile errors in GoogleVR after merge from main. Change 3350932 on 2017/03/16 by Ryan.Vance Re-enabling the gearvr plugin on windows. Change 3351977 on 2017/03/17 by Jeff.Fisher Fixing masked member variable. Change 3352314 on 2017/03/17 by Ryan.Vance We need to ensure that we don't select different lod levels for each eye. Change 3352993 on 2017/03/17 by Nick.Whiting Integrating CL 3345824 from Android-DevVR to Dev-VR. Support for device depth pass in SceneCaptureComponent2D Change 3355185 on 2017/03/20 by Nick.Whiting Added ability to disable the autoloading splash screen, which would prevent the hide splash screen node from ever working Change 3355676 on 2017/03/20 by Nick.Whiting PR #3384: [GNUX] SteamVR, OpenGL patch. (Contributed by yaakuro), with some minor modifications Change 3357286 on 2017/03/21 by Jeff.Fisher Fixing GenerateProjectFiles, looks like the .config. was removed from these references in main some time ago. Change 3357435 on 2017/03/21 by Jeff.Fisher Fixing editor build break, looks like a merge mistake. Change 3359960 on 2017/03/23 by Keli.Hlodversson Prevent potential crash when drawing tracking sensor location. Also only fetch HMD location once instead of once per tracking sensor. Change 3361230 on 2017/03/23 by Jeff.Fisher Fixing linux build opengl include problem... maybe. Change 3361638 on 2017/03/23 by Jeff.Fisher Another guess at fixing linux build. Change 3364224 on 2017/03/24 by Keli.Hlodversson Initial implementation of UEVR-576 - Base emulated layer implementation #jira UEVR-668 - Base emulated layer implementation: Initial framework for overrideable default implementation #jira UEVR-669 - Base emulated layer implementation: Face Locked Layers Support #jira UEVR-670 - Base emulated layer implementation: Tracker Locked Layers Support #jira UEVR-671 - Base emulated layer implementation: World Locked Layers Support #jira UEVR-672 - Base emulated layer implementation: Add support for optionally rendering face locked layers into a separate layer Change 3364242 on 2017/03/24 by Keli.Hlodversson SteamVR layers do not support negatve Layer priorities Change 3364263 on 2017/03/24 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) Monoscopicfarfieldrendering was just 'accept source', Ryan is going to look at fixing it up. Change 3364472 on 2017/03/24 by Jeff.Fisher Merge fix Change 3364475 on 2017/03/24 by Jeff.Fisher Fixing gearvr include. Change 3364486 on 2017/03/24 by Jeff.Fisher merge fix Change 3364532 on 2017/03/24 by Ryan.Vance pso update for mono rendering and stereo layers. Change 3364599 on 2017/03/24 by Ryan.Vance Oculus changes for SI1.12 Change 3365159 on 2017/03/26 by Jeff.Fisher include fix Change 3365182 on 2017/03/26 by Jeff.Fisher include fix Change 3366087 on 2017/03/27 by Ryan.Vance Remaining files from Oculus changes for SI1.12 merge request. Fixing a bug in OnlineSubsystem. Temporarily changing the eye padding change to be a shader clear to work around a clear color binding issue. Change 3366492 on 2017/03/27 by Ryan.Vance #jira UE-43294 Moved the clear before we setup state for drawing the mirror window content. It was stomping over state after the pso changes. Going to leave the shader clear in the rift prerender for clearing the eye padding for now. Change 3366929 on 2017/03/27 by Ryan.Vance Fixing compile error Change 3368549 on 2017/03/28 by Jeff.Fisher Merging Change: 3357998 from //UE4/Partner-Google-VR/Engine/... to Dev-VR Upgrade Google VR Plugin to v1.3: *Upgraded GVR NDK to 1.30.0 *Changed some BlueprintFunction to use BlueprintPure *Add the missing bDaydream flag in UEDeployAndroid.cs #review-3384107 Change 3368975 on 2017/03/28 by Ryan.Vance CIS clean up #jira UE-43428, UE-43429, UE-43426, UE-43427 Change 3369028 on 2017/03/28 by Ryan.Vance This is not exacly 'correct', but it's at least what the code was trying to do. Change 3370203 on 2017/03/29 by Ryan.Vance Adding gear vr controller component support. Change 3370918 on 2017/03/29 by Ryan.Vance Merging 3370569 using Partner-Google-VR_to_DevVR Change 3371030 on 2017/03/29 by Ryan.Vance Fixing linux build errors #jira UE-43426 Change 3371036 on 2017/03/29 by Ryan.Vance Oculus 4.16 integration. Not terribly happy with the use of std::string. They promised to clean this up for the next release. Change 3373495 on 2017/03/30 by Jeff.Fisher Merging from Dev-Main, in preparation for 4.16 Change 3373578 on 2017/03/30 by Jeff.Fisher build break, one comma short Change 3373870 on 2017/03/31 by Jeff.Fisher Include order fix. Change 3374001 on 2017/03/31 by Keli.Hlodversson Use DefaultStereoLayers as base for Morpheus implementation. #jira UEVR-709 #jira UE-42919 #rb: Jeff.Fisher Change 3374004 on 2017/03/31 by Keli.Hlodversson Fix rendering for the default Stereo Layers implementation on mobile. Depth test was set to "Never" instead of "Always" Destination texture on GLES is flipped on the Y axis, the coordinates are reversed in the shade when compiled on the relevant platforms. Change 3375125 on 2017/03/31 by Jeff.Fisher UE-43506 Ensure using VRPreview with GoogleVR -Removed the ensure, there is code in there to handle that case, and it works. #jira UE-43506 Change 3375294 on 2017/03/31 by nick.bullard Resaving Plugin content to resovle "saved with empty engine version" #jira UE-43537 Change 3375480 on 2017/03/31 by Jeff.Fisher UEVR-9 PSVR: Social Screen Support -Experimental social screen support for 4.16. -This does the basics of driving output through the Aux port in the proper format for display on the mirror monitor. -Only supports 30fps on the mirror monitor. 60fps will require the implementation of sony system dialogs to deal with incompatable system features (video streaming, remote play). -There is a project setting in Morpheus, under experiemental bEnableSocialScreenSeparateMode. This must be set to true to use this feature. When it is false we avoid allocating the back buffers. -MorpheusFunctionLibrary blueprints now have a node "SetSocialScreenMode" which can switch between SystemMirror (hardware supported mirroring), SeparateTest (alternates black and white), SeparateTexture (displays a texture, eg a render target, specified via blueprint), and SeparateMirror(puts the hmd render buffer on screen - which is both eyes, like a debug mode). -Also finally updated the bEnabled flag in project settings to tell people it's only for PC. #jira UEVR-9 #review-3384107 Change 3375540 on 2017/03/31 by Ryan.Vance #jira UE-43504 Fixing android build break when using a 64 bit isa. Change 3375655 on 2017/03/31 by Jeff.Fisher Fixing missing RGBAToYUV shader problem -This at least unblocks our process. Will revisit before zbr. Change 3375820 on 2017/04/01 by Jeff.Fisher Fixing linux build warning about HAS_MORPHEUS Change 3376050 on 2017/04/02 by Jeff.Fisher UE-43515 Step 'UE4Editor Static Analysis Win64' - Module.OnlineSubsystemOculus.cpp Warnings -Temporary fix for static analysis annotation warnings in OnlineSubsytemOculus. Longer term plan is to eliminate the use of the headers that trigger the warnings. -Just wrap all standard headers in static analysis disables. #jira UE-43515 Change 3376609 on 2017/04/03 by Jeff.Fisher Fixing rgbatoyuvshader include. Change 3377001 on 2017/04/03 by Jeff.Fisher UE-43547 Launch On PS4 fails during Run command - Missing global shader FRGBAToYUV420CS - shader c++ must be compiled so that it can be cooked for ps4. #jira UE-43547 Change 3379858 on 2017/04/04 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) pulling main this should get us ps4 sdk 4.508 Change 3379938 on 2017/04/04 by Ryan.Vance #jira UE-43548 If stereo layers are not being used, don't setup overlay targets as we will never clear/initialize them. The clear happens as part of the default layers PostRenderView_RenderThread call which wont be called if layers aren't being used in the scene. Change 3381519 on 2017/04/05 by Jeff.Fisher UEVR-733 PS4 sdk 4.500 hmd connection api changes break hmd connect. -Handling failure of sceHmdGetDeviceInformation if the hmd is powered off. It now returns an error code about an invalid handle in that case, rather than reporting unready. We just treat the error code like an unready status. #jira UEVR-733 #review-3384107 Change 3382019 on 2017/04/05 by Ryan.Vance Linux: add Vulkan support from dev editor: 3381593 Change 3382021 on 2017/04/05 by Ryan.Vance SteamVR on Linux using Vulkan OpenVR rev to 1_0_6 PR #3412: [GNUX] Initial support for SteamVR using Vulkan on GNUX platform. (Contributed by yaakuro) Change 3382076 on 2017/04/05 by Ryan.Vance Fixing linux steamvr lib path. It changed to something less silly in 1.0.6 Removing the steamvr plugin from the white list for linux. It's looking for a runtime that no one will have installed. Change 3383237 on 2017/04/06 by Ryan.Vance #jira UE-43732 Fixing Android compile issues. We can't wrap portions of a macro with a definie. This should probably be some sort of recursive macro thing since there's so much overlap. Good enough for now. Change 3383353 on 2017/04/06 by Ryan.Vance Fixing include cycles. Change 3383509 on 2017/04/06 by Jeff.Fisher Merging //UE4/Dev-Main to Dev-VR (//UE4/Dev-VR) merging the stuff from dev-mobile [CL 3384106 by Ryan Vance in Main branch]
2017-04-06 22:03:51 -04:00
}
Copying //UE4/Dev-VR to //UE4/Dev-Main (Source: //UE4/Dev-VR @ 3512802) #lockdown Nick.Penwarden #rb no.one ===================================== MAJOR FEATURES + CHANGES ===================================== Change 3060975 by Ryan.Vance Integrating 3058175 from Oculus Change 3466079 by Nick.Atamas Added rudimentary collision support to MrMesh. Change 3468111 by Mike.Beach Give the SceneRender component's scene view a specific ViewActor (the component's owner). This lets us set bOnlyOwnerSee on components belonging to the same actor, and have it only showup in the render scene view. Change 3468267 by Nick.Atamas Now using non-interleaved data in MRMeshComponent Change 3468475 by Mike.Beach Initial checkin for new mixed reality plugin (WIP). New MixedReality capture component, intended to mimic a real world camera. Copying //Tasks/UE4/Dev-MixedReality to Dev-VR-Minimal (//UE4/Dev-VR-Minimal) #jira UEVR-795, UEVR-789 Change 3468483 by Mike.Beach Marking the new MixedReality plugin as experimental (as it is incomplete and a WIP) Change 3468511 by Mike.Beach CIS fixes for fallout from CL 3468475. Change 3469754 by Mike.Beach CIS compiler error fixes (fallout from CL 3468475). Change 3470407 by Mike.Beach *sigh* more CIS fixes (fallout from 3468475) Change 3471494 by Douglas.Copeland Test content for GearVR Stereo Layers Change 3476135 by Jeff.Fisher UE-45661 Duplicate .so files in GoogleVR. -We want the version of each file from the android_x86 style folder, but in the android\x86 folder, and the APL.xml file needed to reference the new path rather than the old path. -This fix was also made in Release-4.16 for 4.16.2 in cl 3476133. #jira UE-45661 #review-3474770 Change 3480446 by Dustin.Holmes Added support for Vive Tracker. #jira UEVR-792 Change 3480552 by Dustin.Holmes Added map and gamemode for calibration #jira UEVR-808 Change 3483325 by Nick.Atamas Merging //UE4/Partner-Google-VR to Dev-VR (//UE4/Dev-VR) Known issue with Mac build packaging. Change 3485969 by Nick.Atamas Fixed double-spacing and formatting issues. Converted TangoEcefUtils.cpp to follow Epic coding standards. Change 3486071 by Nick.Atamas Rename/move file(s) from Plugins/Runtime/Tango/... to Plugins/Runtime/GoogleTango/... Change 3486078 by Nick.Atamas Fixed non-portable (wrong case) include path. Change 3486906 by Jeff.Fisher Fixing build warning about a variable being shadowed. Change 3487245 by Jeff.Fisher Fixing build break in some template source files from HeadMountedDisplayFunctionLibrary move. Change 3487827 by Nick.Atamas Fixing the missing platforms header; should resolve CIS warning. Change 3488808 by Keli.Hlodversson Fix vr.Debug.VisualizeTrackingSensors when ViewTarget->HasActiveCameraComponent() is true. Also switched to use GWorld instead of passing in the current World argument to the handler as the world pointer can change for instance if turning the setting on and loading another level in the editor. #jira UE-45949 Change 3490841 by Nick.Atamas Fixing more CIS and coding standard issues related to Tango. Change 3491038 by Nick.Atamas Modified GoogleInstantPreview.Build.cs to use RuntimeDependencies instead of explicit dylib/dll copying. Change 3492481 by Jeff.Fisher Fixing HeadMountedDisplayTypes.h shadowed member warning. Change 3495157 by Mike.Beach New XR modular feature - XRDeviceAssets. Intended to give us access to device models so we can render arbitrary devices. Implements this for SteamVR. #jira UEVR-829 Change 3495205 by Mike.Beach CIS fix (fallout from 3495157) - missing leading 'template<>' for template specializations. Change 3495213 by Mike.Beach Fixing the vr.SpectatorScreenMode CVar so that it's sink function doesn't override other CVar commands that set the mode themselves. #jira UEVR-790 Change 3495403 by Nick.Atamas - Disabled Google Tango support for Win32. - Disabled GoogleInstantPreview files being erroneously included while building game; it is only used by Editor. - Renamed Tango.uplugin -> GoogleTango.uplugin - Fixed self-assignment in TangoImageComponent.cpp Change 3496225 by Mike.Beach Fixing CIS compiler error for non-editor builds (fallout from CL 3495157). Change 3496981 by Nick.Atamas GoogleInstantPreview libraries are now checked into Binaries/ThirdParty/... so that no copying from .Build.cs is necessary. Change 3497033 by Nick.Atamas Going back from GoogleTango/ to Tango/. It's a bigger change that previously thought. Change 3498487 by Nick.Whiting Adding option to PIE settings to NOT minimize editor when doing VR PIE Change 3499242 by Dustin.Holmes Fixed static analysis warning by updating the number of devices that can have their button states tracked. Change 3499341 by Nick.Atamas Hopefully fixes Mac Editor CIS. Change 3499395 by Arciel.Rekman Copying //UE4/Partner-Valve@3499365 to Dev-VR (//UE4/Dev-VR) Change 3499550 by Ryan.Vance Fixing compile issue. Change 3499678 by Nick.Atamas - Dummy Mesh Reconsturctor now sometimes generates empty blocks to test more scenarios. - Removed unused code in DummyMeshReconstructorModule - Removed unused variable in GoogleInstantPreview.Build.cs Change 3499840 by Nick.Atamas std::string needed by google's online system. Change 3499889 by Nick.Atamas Fixed static code analysis CIS fails. Change 3500007 by Nick.Whiting Removing Vulkan RHI dependency on a plugin, refactoring it to use an interface to check to break the dependency Change 3500027 by Nick.Whiting Fixing missing include file in SteamAudio Change 3500030 by Nick.Whiting Changing cast from reinterp to static. Copypasta fail Change 3500078 by Nick.Whiting Speculative fix for the builder for an error that doesn't repro locally Change 3500086 by Nick.Atamas More build fixups. Change 3500096 by Nick.Atamas Copying //UE4/Partner-Google-VR-Minimal at CL3499964 to Dev-VR (//UE4/Dev-VR) Change 3500107 by Nick.Atamas Does this fix CIS? Change 3500121 by Nick.Atamas More CIS fixing, hopefully. Change 3500129 by Nick.Atamas More CIS fixing. Change 3500713 by Nick.Whiting Fix for Win32 build break Change 3500887 by Arciel.Rekman Fixed copyright notices and compilation errors in Steam Audio. (Edigrating CL 3500131) Change 3501010 by Arciel.Rekman Fix shadowing error. Change 3501230 by Nick.Atamas Make warning go away. Change 3501890 by Nick.Atamas Moving Tango->GoogleTango. Fixup pass in next CL. Change 3501900 by Jeff.Fisher UE-46265 Crash attempting to Play in VR -Need to call UpdateSpectatorScreenMode_RenderThread in PreRenderViewFamily_RenderThread so that the mode is set before other renderthread work decides what to do based on the mode. #review-3501882 #jira UE-46256 Change 3502152 by Nick.Whiting Oculus Unified Plugin. OculusHMD plugin now supports both the Rift and the GearVR in one plugin. Minor supporting engine modifications included Change 3502199 by Nick.Atamas Checking in TangoQA project with fixed-up content to point at GoogleTango plugin. Known issue: crash when building cooking collision for bricks with no triangles. Change 3502215 by Nick.Atamas Fixed UIScale curve. Change 3502253 by Nick.Whiting Trying to fix up p4's botch of the merge Change 3502930 by Mike.Beach Attempt to fix build errors (fallout from CL 3502873), using new (moved/renamed) PhysX cook util struct. Change 3503559 by Jeff.Fisher UE-46300 Editor process crashes when opening with Oculus HMD plugged in -Reimplementing spectator screen for updated oculus plugin. #jira UE-46300 #review-3503455 Change 3503685 by Jeff.Fisher TM-SpectatorScreen -made the scene capture component follow the camera orientation so i can make it look at different stuff. Change 3503695 by Nick.Whiting Fixes for build breaks Change 3503819 by Jeff.Fisher TM-SpectatorScreen -Adjusted scene capture and render target to get approximately correct color in the spectator screen. Change 3503852 by Nick.Atamas - Fixed crash when sending a brick with 0 data. - Added implementation to ClearAllBricks. Change 3503947 by Ryan.Vance Fixing overspecified method definitions. Change 3505242 by Douglas.Copeland Added gamepad inputs to SpectatorScreen Level BP for more efficient test setup Change 3505307 by Douglas.Copeland Re-saving Emmissive_Blue Material to resolve map warning Change 3505704 by Ryan.Vance We can't pass a nullptr into RenderTexture_RenderThread. Instead of checking for a mirror window here, the RenderTexture_RenderThread implementation should do the right thing. Jeff's mirrorwindow/socialscreen refactoring should handle this correctly now. Change 3505914 by Jeff.Fisher UE-46370 Ensure handled when restarting Editor after disabling Oculus plugin -remove scaling from the pose if necessary. It appears that when running oculus rift through steamvr the tracking reference comes through at .99 scale. We can't build a quat out of it unless it is normalized. #jira UE-46370 #review-3505892 Change 3506650 by Jack.Porter External Texture fixes changes from Dev-Sequencer - fix ENGINE_API meaning singletons were existing in each module - fix crash releasing an External RHITexture resource. - Recache uniform expressions when external textures are registered and unregistered Change 3506653 by Jack.Porter Remove external texture logging that was accidentally enabled. Change 3507043 by Mike.Beach Fixing CIS content errors (copied material still referencing assets from a separate plugin) - redid the material. Change 3507231 by Ryan.Vance #jira UE-46426 Fail preinit on gearvr if bPackageForGearVR is false Change 3507822 by Jeff.Fisher UE-46445 Player can't move through level by holding one grip button in Editor VR Mode -We were passing worldscalefactor, rather than worldscale into the get controller position function. WorldScaleFactor is worldscale / 100, making it a unitless multiplier of the world scale. So a *magical* 100 needs to be multipled back in here. Oculus must have found that and fixed it, looks like it was broken for 4.16. #jira UE-46445 Change 3508167 by Jeff.Fisher Fixing CheckSlow at startup on Oculus. The head pose orientation was being initialized to zero rather than identity, which isn't so useful. Change 3509622 by Jeff.Fisher Adding commented out null check to commented out implementation of ShouldDisableHiddenAndVisibileAreaMeshForSpectatorScreen_RenderThread. Change 3509983 by Jeff.Fisher Fixing vr.MirrorMode alias to vr.SpectatorScreenMode -was trying to use a cvar that no longer exists Change 3510188 by Ryan.Vance #jira UE-46454 We need to set the render target before applying cached render targets. Change 3510231 by Mike.Beach Setting up redirects for the plugin, since it was renamed from "OculusLibrary" to "OculusHMD" - ensuring that projects don't loose references in Blueprints, etc. #jira UE-46462 Change 3510253 by Ryan.Vance #jira UE-46452 We need to execute the clear before seting up shader state for the copy. Change 3511627 by Mike.Beach Correcting some CIS warnings - Updating misc. GetWorldFromContextObject() calls since the old signature was deprecated by the latest Framework integration. Change 3511984 by Mike.Beach Fixing fallout from integration with Main (CL 3511845)... common shader file renamed (to .ush instead of .usf). Change 3512797 by Mike.Beach Static analysis fix - making doubly sure that we're not indexing into out of bounds memory. Change 3512802 by Mike.Beach Only warning about the OculusHMD module being unavailable when it isn't loaded (otherwise, we were extraneously warning when users didn't have a rift). #jira UE-46575 DONE! [CL 3512933 by Mike Beach in Main branch]
2017-06-27 23:02:31 -04:00
bool FHeadMountedDisplayBase::IsSpectatorScreenActive() const
{
ISpectatorScreenController const * Controller = GetSpectatorScreenController();
return (Controller && Controller->GetSpectatorScreenMode() != ESpectatorScreenMode::Disabled);
}
ISpectatorScreenController* FHeadMountedDisplayBase::GetSpectatorScreenController()
{
return SpectatorScreenController.Get();
}
class ISpectatorScreenController const * FHeadMountedDisplayBase::GetSpectatorScreenController() const
{
return SpectatorScreenController.Get();
}
Copying //UE4/Dev-Rendering to //UE4/Dev-Main (Source: //UE4/Dev-Rendering @ 3760894) #rb Rendering #lockdown Nick.Penwarden ============================ MAJOR FEATURES & CHANGES ============================ Change 3658809 by Chris.Bunner Changing default HDR display gamut to P3 as in practice that's more common than Rec2020, this should be a user-facing option where possible though as we can't automatically retrieve that data. Change 3658842 by Chris.Bunner Backing out previous HDR default gamut change as it conflicts with mandatory platform defaults. Change 3695269 by Arne.Schober DR - Make clang happy wreorder Change 3695418 by Guillaume.Abadie Fixes compilation failure in FoliageType_InstancedStaticMesh.cpp. Change 3695430 by Guillaume.Abadie Fixes missing BeginFrame dynamic resolution event in EngineTest. Change 3695469 by Guillaume.Abadie Fixes crash when passing down an invalid parameter on the sample material expression's DDX, DDY parameters. Change 3696091 by Guillaume.Abadie Fixes Linux compilation failure in DynamicResolution.cpp Change 3696593 by Chris.Bunner Fixed typo in vetex factory enum. Change 3696596 by Chris.Bunner Added material attributes type checking to If material expression. Updated If material expression to validate compilation of inputs. Change 3696597 by Chris.Bunner Allow visible parameter retrieval to correctly traverse through internally called functions. Previous check was intended to prevent function previews from leaving their graph through unhooked inputs, but unintentionally blocked all function inputs. Change 3696599 by Chris.Bunner Fixed material instance parameter visiblity when using nested static switches across functions. #jira UE-50878 Change 3696734 by Chris.Bunner Return type fix. Change 3697123 by Guillaume.Abadie Fixes compilation failure in PostProcessWeightedSampleSum.cpp on Windows 32bits. Change 3697125 by Guillaume.Abadie Fixes compilation failure in MaterialExpressionIf.h Change 3697127 by Guillaume.Abadie Fixes compilation failure in DynamicResolution.cpp on shipping build. Change 3697135 by Guillaume.Abadie Fixes crash in dynamic resolution event frontend when resizing game play viewport in EngineTest. Change 3697199 by Guillaume.Abadie Fixes TAA upsample's shader compilation failure on Mac. Change 3697220 by Guillaume.Abadie Makes static analysis happy again. Change 3697280 by Chris.Bunner Fixing up invalid casts in material layers validation. Change 3697366 by Rolando.Caloca DR - hlslcc - Fix warning #jira UE-43988 Change 3697451 by Rolando.Caloca DR - vk - Per pipeline descriptor pools Descriptor pool are now allocated per PSO instead of globally to reduce peak mem consumption and fragmentation Enabled on Windows only via VULKAN_USE_PER_PIPELINE_DESCRIPTOR_POOLS Change 3697477 by Rolando.Caloca DR - vk - Custom memory allocator Remove old/unused stats Change 3697486 by Rolando.Caloca DR - vk - Fix validation issue Change 3697488 by Richard.Wallis Fix for Mac editor session no longer accurately tracking Mouse location after moving between Desktops in Mission Control on 10.12.6. Problem stems from the extra call to update the slate cached window position in mouse move while dragging, which is itself is a hack but apparently this is needed as we don't get window position updates on Mac while dragging (although I couldn't see any -ve side effects without it) then the OS (in 10.12.6) doesn't always push out a final window did move notificaiton when changing desktops which leaves the window according to slate incorrectly positoned to it's frame. Solution is to either remove the mouse-move-while-drag window position hack or add a final window position update to the mouse-up event while dragging - this change is the latter. #jira UE-37553 Change 3697501 by Richard.Wallis Move audio processing over to audio bus tap. Currently on Mac Media audio playback uses OS media player mixer rather than Engine as existing implemtation, using AVAssetReader, now suffers from poor performance with new Media Framework. This audio tap version replaces that asset reader implementation but also suffers from bad quality audio hence is still disabled at the top of AvfMediaTracks.cpp. Original Code Review Description: Convert Mac to Play audio through the engine MediaFramework API rather than using AVMediaPlayer. This is the Mac implementation only - this should work ok on iOS but unable to test due to missing audio type implementation (throws error "Init Buffer on unsupported sound type name = Synth type = 5"), as such is only enabled for Mac. There maybe some extra tweaks required for iOS on app backgrounding etc if this feature is enabled. - Stuttering Audio Performace issue investiagation: Re-Tested this implementation against [now fixed] current Mac implementation which was working fine last year and that implementation now has the same audio output quality (performance) issues as this one. Basic investigation seems to point to somewhere in the engine audio handing. When poor audio is heard the FMediaAudioResampler::Generate() function is dequeing an IMediaAudioSample sample buffer and the audio sample queue usually has 50-100 of these IMediaAudioSample buffers waiting in the queue. I think the AvfMedia playback system is providing the sample buffers in good time but they are not getting consumed "fast" enough. This under consuming also occurs if I force the Core Audio - Audio Unit mixer to use 48000 samples/sec. #jira UEPLAT-1677 Change 3697517 by Richard.Wallis XCode 9.0 extra nullability specifiers required. Change 3697537 by Richard.Wallis Back out revision 23 from //UE4/Dev-Rendering/Engine/Plugins/Media/AvfMedia/Source/AvfMedia/Private/Player/AvfMediaTracks.cpp Change 3697670 by Rolando.Caloca DR - vk - Fix mapstaging surface Change 3697846 by Uriel.Doyon Allow denormalized values when converting float32 to float16. Change 3697892 by Uriel.Doyon Fix for unaligned structure elements Change 3699335 by Richard.Wallis Mac compile fix - turns out I did need these nullability specifiers here. Change 3699663 by Guillaume.Abadie Fixes time unit conversions from microseconds to milliseconds error in dynamic resolution heuristic when using GPU busy time queries. Change 3699959 by Rolando.Caloca DR - Fix barrier in the middle of render pass Change 3699969 by Rolando.Caloca DR - vk - Change dump layer location so it prints out validation ids Change 3700356 by Guillaume.Abadie Implements secondary screen percentage to be able to do TAA upsample followed spatial upscale so that the editor viewport still have same TAA upsample screen percentage range to test the content with no matter monitor's DPI. Change 3701105 by Guillaume.Abadie Ignore per view automatic mip bias on texture type other than 2d textures. #jira UE-51396 Change 3702297 by Richard.Wallis Mac compile fix for nullable specifier. Looks like Obj class using the C++ class also needs this otherwise it throws. Seems to be some kind of xcode/compiler caching bug with this stuff as it'll report the error once then on subsequent compiles say everything is ok. #jira UE-51386 Change 3702357 by Richard.Wallis Mac nullability compile fix - again. Looks like I fell foul of that xcode compile caching! #jira UE-51386 Change 3702424 by Guillaume.Abadie Fixes planar reflection from drowing themselves in their own FSceneRenderer in forward shading. #jira UE-51395 Change 3702464 by Guillaume.Abadie Fixes wrong viewport to buffer conversion of the distortion. #jira UE-51406 Change 3702819 by Guillaume.Abadie Fixes planar reflections with secondary screen percentage for HighDPI editor viewports. Change 3703732 by Guillaume.Abadie Removes unecessary check(); when there is more than 2 players with planar reflections. #jira UE-51436 Change 3704302 by Guillaume.Abadie Removes unecessary Interface suffix on new dynamic resolution related interfaces Change 3704390 by Chris.Bunner Fixed a coincidentally correct define. Change 3704730 by Rolando.Caloca DR - vk - Fix map for depth surfaces Change 3704739 by Rolando.Caloca DR - Debug label on D3D11 UAVs - Validate when running -d3debug Change 3705000 by Chris.Bunner Skip compiling opacity and opacity mask inputs on opaque surface materials. Previously the code was always added to the shader, sometimes we force opaque materials down a masked path which then calls the dormant code unintentionally. A safer fix for UE-48254. Partially reverted previous fix in CL 3608303 which removed a material instance optimization caching the overridden base properties. Change 3706065 by Guillaume.Abadie Does some renaming for primary screen percentage, and move the primary screen percentage method selection from dynamic resolution driver to FSceneView. Change 3706464 by Chris.Bunner Fixed material property translate overrides that were generating code in the wrong entry. Fixed conditions in If material expression GetInputType and IsMA check. #jira UE-51368 Change 3706641 by Chris.Bunner Missing "break" in switch statement (which unfortunately needs another bump to resolve). Change 3706642 by Guillaume.Abadie Fixes assertion failure when r.TemporalAA.EnableUpscale = 1 Change 3706650 by Gil.Gribb UE4 - UE4 - Changes from intel. Increase number of worker threads on Windows to if hyperthreads (hyperthreads √ 2) else cores √ 1 up to a max of 22 workers. Increase MAX_THREADS multiplier per bank from 22 to 26. Intel VTune ITT event annotations. Wrapped in same function as your existing CPU events and enabled with √vtune. Optimize NV cloth by consuming FVector instead of FVector4 out of the solver. Vertex buffers were using FVector all along. ~15% improvement. Optimize cloth copy to vertex buffer by adding prefetch (similar to how bones are already done). Move local to world cloth transform from CPU to GPU. When simulating lots of vertices game thread was becoming bottleneck doing matrix multiply. Add your TaskGraph task switch latency test code. Change 3706733 by Daniel.Wright Print Embree Build time Change 3706841 by Daniel.Wright EmbreeFilterFunc4 now handles masked out intersections properly Change 3707437 by Rolando.Caloca DR - vk - Android compile fix #jira UE-51474 Change 3707785 by Guillaume.Abadie Fixes viewport issue in bloom setup pass with TAA upsample. Change 3709623 by Rolando.Caloca DR - vk - Missing barrier for reading into cpu Change 3709633 by Rolando.Caloca DR - vk - Compile fix Change 3710454 by Mark.Satterthwaite Refactor the way we compile Buffer<> & RWBuffer<> types for Metal so that we can support the type-conversion semantics of HLSL/D3D. - Buffer<> types are converted to Linear Textures unless the internal type is 3-compnent or the STRONG_TYPE macro is added as a type-qualifier. Linear Textures require an MTLTexture "view" object be created around the MTLBuffer which is the backing-store and it is typically best if that buffer is marked as Private (GPU-only) memory, reading from this in the shader then uses the texture-fetch hardware to perform the format conversion on load. - RWBuffer<> & 3-compnent Buffer<> types are converted to use template functions to load/store - the implementation of which will read the format from the BufferSizes meta-table and determine which type-conversion to apply. Function-constants are used to specialise the shader where feasible to reduce branch costs (function-constants are a Metal feature that allow efficient runtime recompilation of bytecode shaders). - Buffer<> & RWBuffer<> types where the STRONG_TYPE macro is added as a type-qualifier (only does something on Metal, everywhere else it is #define'd away) are compiled as "raw" Metal buffers of the inner-type (e.g. float4 for Buffer<float4>) and the MetalRHI runtime will enforce that only SRVs/UAVs of the proper format are bound to it. This is necessary in a couple of cases (BoneMatrices, NumCulledLightsGrid, CulledLightDataGrid & ForwardLocalLightBuffer buffers) which are used in a larger number of shaders as Linear Textures have poorer performance than Buffer<>/RWBuffer<>. - Most of the complications to generating subtly different Metal code for different OS/device combinations have been factored out into ue4_stdlib.metal which acts as an extension to the Metal shader standard-library and helps simplify the MetalBackend code - particularly helpful for Buffer<>/RWBuffer<> but also texturecube_array and the SM6 wave-related intrinsics. - Reverted some of the awkward Metal-specific changes Richard.Wallis & Arne had to make to the high-level shaders as they aren't necessary anymore. - Made the existing Metal-specific changes to use uint32 for all light-grid injection buffers apply to all Metal platforms again (I had hoped that it would not be necessary anymore, but it is much faster this way). - STRONG_TYPE is actually hlslcc's "invariant" keyword applied as a type-qualifier to a Buffer<>/RWBuffer<> type - only valid when using Metal which exports this through ILanguageSpec and #define'd out for everyone else. - Old versions of iOS (anything earlier than iOS 10.3) won't be able to use this new code, so every buffer will be treated as "raw" and the MetalRHI will now properly report when something goes awry rather than it leading to mysterious rendering errors and crashes. Change 3710456 by Mark.Satterthwaite Fix the Eddie workset project generator so that Enterprise projects don't get mixed in with regular projects at the top-level because of the way Eddie combines workset groups. Change 3710457 by Mark.Satterthwaite DX11 texture formats for Mac Metal please! Change 3710480 by Mark.Satterthwaite Permit RHI thread and parallel execution in Mac -game mode again. Change 3710522 by Mark.Satterthwaite MSVC type-mismatch error fixes. Change 3710580 by Mark.Satterthwaite Alright then - if I can't use the C++11 extended string semantics I'll have to use "xxd -i" to generate a hex-dump include header from ue4_stdlib.metal instead. This can only be updated from a machine with access to the POSIX xxd command (Mac & Linux, possibly the new Linux sub-system for Win10). Change 3710616 by Mark.Satterthwaite Missing file. Change 3712972 by Guillaume.Abadie Fixes Circle DOF's negative alpha channel getting clamped to 0 in TAA pass. Change 3712979 by Guillaume.Abadie Fixes wrong RT reallocation when doing TAA upsample in editor viewports with secondary upscale. Change 3713406 by Mark.Satterthwaite Use GPU morph targets on Mac - the necessary buffer conversions will always be available there. For iOS it can only be supported if iOS 10 is the minimum OS & Metal standard so leave that on the CPU path for now. Change 3713494 by Richard.Wallis Fix for hitch when PIE unloading sublevel. PerformReachabilityAnalysisOnObjects is spawing multiple threads in Editor builds as there is an extra code path that results in Critical Section locking within a singleton type static object - this is a bottle neck for multiple threads. However they all just need to read the data not change it. Replaced FScopeLock with a Read/Write version allowing these threads to all take a read lock at the same time to reduce contention. Changed the FUObjectAnnotationDense implementation only - left the sparse implementation alone as its not currently affecting this - although we could proactivly change that too. Also tested again repro in linked bug UE-24711. #jira UE-40533 Change 3713612 by Mark.Satterthwaite Integrate LPV_STORE_INDEX_IN_HEAD_BUFFER related changes from //depot/Partners/Microsoft/UE4-MS/Engine-Fable @ 2954744 This should make Light Propagation Volumes potentially viable on non-Microsoft platforms. Change 3713623 by Mark.Satterthwaite Implement ByteAddressBuffer/RWByteAddressBuffer in hlslcc in a similar manner to StructuredBuffer/RWStructuredBuffer so that the backends don't need too much modification. Implement the necessary changes into MetalBackend to make this work for Metal. Load/Store{+2,3,4} & Atomics are supported. Counter operations are not supported and aren't likely to be. Change 3713636 by Mark.Satterthwaite Enable LPVs for Mac Metal. - Rework some multi-dimensional arrays & array-index dependent HLSL code that hlslcc simply can't cope with, the mesa-glsl compiler core is only capable of dealing with 1 dimensional arrays and array-indexing can't itself be directly dependent on the result of an array-index operation. - MetalRHI needs to ignore any SetRenderTargets call that binds nothing at all as you must bind at least one target (UAV, RT, Depth/Stencil) for it to be able to do anything sensible. - Turn on LPVs for Metal as it works now. Change 3714049 by Guillaume.Abadie Do not set screen percentage method to TAA upsample when anti aliasing method is not TAA even if there is automatic fallback in the renderer. Change 3714306 by Guillaume.Abadie Fixes assertion failure in dynamic resolution state proxy with GPU busy time queries. Change 3714714 by Mark.Satterthwaite Tweak Metal GPU identification so that it works with eGPU boxes and protoype hardware - these changes only apply to macOS 10.13 so the system as a whole remains. Change 3716104 by Mark.Satterthwaite Fix 10.12/Xcode 8 compile errors from the build-farm which is still split until Fortnite can update. Change 3716120 by Mark.Satterthwaite Silence static-analysis. Change 3716158 by Guillaume.Abadie Rewrites editor primitive compositing to support TAA upsample. This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives. Change 3716271 by Daniel.Wright Lightmass correctness fixes * After these changes, point, spot, directional and sky lights closely match reference renderer Mitsuba after light unit conversions * Photon density trimming intended for direct photons was affecting indirect photons as well. This caused high noise for point / spot lights with a large attenuation radius. Indirect photon density even for small lights is 5x with this change, which improves 2nd bounce quality. * Removed legacy fudge factor on point / spot light photon energy * Spotlights no longer emit based on indirect photon paths. Fixes excessive photon energy from spot lights as they were emitting outside of the cone. * Fixed photons computing one more bounce than requested. * Added an option to use the Radiosity solver for all multibounce, replacing photons. Useful as a reference but generally too much noise indoors. * Fixed visualization of photons without final gather Change 3716434 by Mark.Satterthwaite Backout the remaining change from 3632041 that is no longer necessary - this was the last of the 4.18 Metal workarounds. Change 3716491 by Chris.Bunner Fixing up an edge-case on a recent optimization. Change 3716611 by Guillaume.Abadie Allows secondary screen percentage >= 100%. Change 3716977 by Guillaume.Abadie Back out changelist 3716158 to unblock QA pass. #jira UE-51580 Change 3717111 by Arne.Schober Fixing nomalization of Morph Tangents https://udn.unrealengine.com/questions/392462/ Also implemanted batching of the dispatches which should help worst case perfomance where dispatches become too small. CalculateInverseAccumulatedWeights is not cheap and proably should be moved onto a task thread that runs as soon as the input weights are ready. Change 3717127 by Mark.Satterthwaite Fix a mismerge from the reversion of 3632041 - part of the modified code had been moved into another file and I didn't initially notice. Change 3717178 by Mark.Satterthwaite Remove useless copy-pasted expressions from glsl_type::GetByteAddressBufferInstance & force MetalBackend to relink. Apparently the previous Mac libs were mysteriously broken. #jira UE-51583 Change 3717476 by Marcus.Wassmer Fix PS4 compile. funciton local statics not allowed on PSSL Also enabled the new atomics method for LPVs for all platforms Change 3717502 by Arne.Schober DR - Compiletime option for compressed ruleset (0.02ms perf gain on PS4 and disabled by default as it limits array size to 2million entries) Change 3717601 by Arne.Schober DR - Move cycle counter into more meaningfull locations. Change 3718054 by Guillaume.Abadie Removes unecessary check() failure on secondary upscale that fires when testing raw output screen percentage method. Change 3718066 by Guillaume.Abadie Reland: Rewrites editor primitive compositing to support TAA upsample. This takes the oportunity to remove the manual depth testing in base pass pixel shader of editor primitives. Change 3718589 by Mark.Satterthwaite Console-variable to enable and disable Manual-Vertex-Fetch for Metal and fix the internal code to handle the subtle changes in behaviour for vertex-declarations so we don't explode under the Metal validation layer. MVF works on macOS, though testing did expose an error with Tessellation on Nvidia (true for MVF enabled & disabled). Change 3718633 by Guillaume.Abadie Fixes temporal instability issue of TAA upsample with secondary screen percentage. Change 3718658 by Arne.Schober DR - 25% MorphTarget Speed increase because there was a bit of cache thrashing between the waves going on. Change 3718818 by Mark.Satterthwaite Fix compilation on hlslcc - integral values are not automatically converted into comparisons with zero. Change 3719004 by Guillaume.Abadie Lets the game viewport client automatically set raw output screen percentage method when doing dynamic resolution with stereo rendering but without TAA upsample. Change 3719375 by Mark.Satterthwaite Extend mtlpp compiler testing app to support Metal tessellation compute shaders so we can send Nvidia a much simpler reproduction of their regression. Change 3720099 by Mark.Satterthwaite Make the left-hand arguments work in airdiff. Change 3720413 by Mark.Satterthwaite Support standalone compute shaders in the mtlpp compiler test app. Change 3721232 by Mark.Satterthwaite No more Metal Shader Model 4 - instead we have to have a Metal Shader Model 5 w/o Tessellation as Nvidia's shader compiler is broken on all tessellation shaders in 10.13.0 and above. There is no guarantee that they will fix this prior to 10.14 and I can't afford to disable tessellation entirely as if I do that then the AMD & Intel compilers will also regress. As there is no Shader Model 4 platform on Mac anymore I've amended the LevelEditorActions to disable the preview modes when no appropriate shader platform is available. Change 3721244 by Mark.Satterthwaite Fix incorrect enum handling for Metal features due to overflow. #jira UE-51643 Change 3721338 by Mark.Satterthwaite MIssing file from 3721232 Change 3721818 by Mark.Satterthwaite Fix the Intel vector-array-dereference workaround so that it doesn't cause the AMD compiler to explode instead. Change 3722139 by Arne.Schober DR - [UE-51602] -Fixed Typo that accidently bound the LightingInstancebuffer to the Transform one #jira UE-51602 Change 3722165 by Rolando.Caloca DR - Default -opengl to GL4 Change 3722682 by Guillaume.Abadie Fixes wrong clear color in SSR important for VR that has a HMD mesh. Change 3722766 by Rolando.Caloca DR - Fix static analysis Change 3722943 by Mark.Satterthwaite Disable the METAL_SM5_NOTESS shader platform again - I can workaround the Nvidia pipeline state compiler crash by changing the buffer address space from "constant" to "device" as we're managing to confuse the poor thing. This won't materially affect AMD or Intel as they don't care much about this, but to limit performance issues on Nvidia we only need to do this for Tessellation Compute shaders. Change 3723100 by Mark.Satterthwaite Apparently users like enabling Metal shader standards that won't work on their current OS, so don't display those that aren't going to work & display an error message before quitting rather than crashing when trying to load a project that tries to use an incompatible shader version. Change 3723121 by Mark.Satterthwaite Fix build error. Change 3723245 by Daniel.Wright Ensure for when a reflection capture upload fails due to incorrect lighting scenario level handling Reflection captures with no data use an array index of 0, instead of -1. Might avoid reading uninitialized memory on PS4. Change 3723387 by Arne.Schober DR - Metal already applies the instance and vertexoffset in the shader Change 3723393 by Mark.Satterthwaite More fixes to the mtlpp compiler test application. Change 3725258 by Guillaume.Abadie Improves fast TAA upsample shader permutation by 15% on console. Change 3725555 by Chris.Bunner [Dupliate] CL 3725548 - Fixed invalid screenpercentage value in VehicleGame sample (was setting -1 but should default to 100). This has always been broken but was recently exposed by CL 3686200. Change 3726845 by Guillaume.Abadie Exposes SvPosition to material through screen position material expression, so that material no longer have SvPosition * InvViewSize * ViewSize precision loss. #jira UE-51428 Change 3728014 by Guillaume.Abadie Uses ScreenPosition material expression's PixelPosition pin in existing engine functions to improve precision. #jira UE-51428 Change 3728053 by Richard.Wallis Duplicate CL 3727958: Crash fix when using shared material libraries. Initial shader code library offset is not zero'd so all entry offsets were garbage. Change 3728339 by Guillaume.Abadie Adds project setting for TAA upample, and officialises TAA upsampling CVar. Change 3728549 by Guillaume.Abadie CsvProfiler is pretty cool, but even better with console autocompletion for lazy developers. Change 3728752 by nick.bullard Built and re-saved QA-MeshPaint #jira UE-50978 Change 3728775 by Guillaume.Abadie Implements r.DynamicRes.ChangePercentageThreshold to stabilize primary screen percentage. Change 3729224 by Uriel.Doyon Hidden levels now keep their last build data when using lighting scenarios. Hidden levels don't affect the scene anymore volumetric lighting when not using lighting scenarios. #jira UE-40454 #jira UE-38131 Change 3729243 by Marcus.Wassmer Update Ansel to 1.4 #github 4159 #jira UE-51545 Change 3729325 by zachary.wilson Adding indirect lighting to TM-LightingChannels #jira UE-47069 Change 3729485 by zachary.wilson Fixing ambient occlusion bias on QA-LightsStationary. Removed global PPV with bad settings, also fixed the shadow on the roof. #jira UE-50972 Change 3729629 by Uriel.Doyon Fixed crash when using debug view modes. Fixed d3ddebug error when clearing quad overdraw buffer. #jira UE-51836 Change 3730053 by Guillaume.Abadie Allows edititing of AScreenshotFunctionalTestBase::ScreenshotCamera. Change 3730308 by Guillaume.Abadie Disables TAA upsample on buffer visualization, and disallow screen percentage preview in editor viewport with any buffer visualization. Change 3730355 by Guillaume.Abadie Sacrifices consistency for good cvar name for TAA upsample. Change 3731403 by Daniel.Wright Reduced slider for ContactShadowLength to .1, algorithm produces poor results with larger values. Change 3731404 by Daniel.Wright Checkpoint for ScreenShadowMaskTexture, allowing 'vis ScreenShadowMaskTexture' Change 3731407 by Daniel.Wright Must opt-in for FDistanceFieldSceneData::VerifyIntegrity Change 3731517 by Guillaume.Abadie Freezes dynamic resolution heuristic when doing pause. Change 3732168 by Guillaume.Abadie Renames TAA upsampling cvar. Change 3732295 by Guillaume.Abadie Lets the scene texture's size and texel size return the correct sizes after TAA upsample. Change 3732313 by Guillaume.Abadie Implements SceneTexture material expressions' automated tests. Change 3734928 by Guillaume.Abadie Adds panic mode when the last N frames are over budget to the dynamic resolution heuristic. Change 3735966 by Ryan.Vance Fixing mac steamvr compile issue. Missed a few lines in the refactor because mac. Change 3736104 by Guillaume.Abadie Removes FSceneViewInitOptions::bDisableGameScreenPercentage brought by 4.18, that new screen percentage API do in a better way. Change 3736346 by Daniel.Wright Volumetric fog is always interpolated in the pixel shader, since per-vertex interpolation gives consistently poor results. Fixes Volumetric Fog on opaque in Forward, and on transparent in Deferred. Forward shading: per-pixel height fog is always done in the base pass, to work with MSAA correctly Change 3736348 by Daniel.Wright Forward shadowing of directional light for translucency * Static shadowing and CSM supported with minimal filtering (1 PCF) * Deferred renderer: affects translucency using 'Surface ForwardShading' lighting mode. Forward renderer: affects all translucency. Change 3736650 by Rolando.Caloca DR - vk - # of desc pools Change 3737985 by Guillaume.Abadie Fixes pixel inspector with primary and secondary screen percentage. Change 3738638 by Michael.Lentine Compile fix due to unclear operator precendence. Change 3739417 by Daniel.Wright Fixed a few issues with irradiance cache visualization Change 3739447 by Daniel.Wright Skip forward static shadowing in projects with static lighting disabled Change 3739595 by Daniel.Wright ConditionalPostLoad DistanceFieldReplacementMesh. Should fix a crash on load when static mesh derived data is being rebuilt, and the DistanceFieldReplacementMesh is in use. Change 3739598 by Daniel.Wright Disable capsules shadows on lowest shadow quality Change 3739611 by Daniel.Wright Added r.CapsuleDirectShadows and r.CapsuleIndirectShadows for more specific scalability control over capsule shadow features New Lighting Feature show flags for RTDF shadows and Capsule Shadows Change 3740516 by Guillaume.Abadie Fixes VR editor rendering only on eye with TAA upsample. #jira UE-52016 Change 3740580 by Guillaume.Abadie Fixes chromatic aberration with TAA upsample and multiple view rendering. #jira UE-51993 Change 3740588 by Guillaume.Abadie Gives to FXAA a more explicit draw event name for easier UDN support. Change 3740845 by Michael.Lentine Fix shipping build. Change 3740903 by Guillaume.Abadie Disables dynamic resolution threading outliers detection by default and includes editor UI GPU cost within dynamic resolution's begin/end frame events for better reliability of timestamp query based dynamic res in editor. Change 3741355 by Daniel.Wright Normalize planar reflection plane - fixes crash when scaling a BP with a planar reflection component Change 3741357 by Daniel.Wright More info on volumetric lightmap import failure Change 3742535 by Ryan.Vance Fix for view rect changes. Change 3743282 by Guillaume.Abadie Fixes a bug in dynamic resolution heuristic's outlier detection that was preventing the over budget panic to react. Change 3743559 by Michael.Lentine Port Siren changes for recompute tangents. This adds recompute tangents for cloth as well as the ability for recompute tangents to work across seams where vertices are duplicated. Change 3743679 by Guillaume.Abadie Cherry-pick 3743621: Fixes subsurface profile fallback to lit shading model when Opacity == 0, introduced by 3447144. #jira UE-51569 Change 3743906 by Ryan.Brucks BlueprintMaterialAndTextureNodes Plugin: Fix for clamping sampled HDR render target values by setting ERangeCompressionMode in the FReadSurfaceDataFlags to RCM_MinMax Change 3744096 by Ryan.Brucks BlueprintMaterialAndTextureNodes Plugin: removed Mip option from Texture2D_SampleUV_EditorOnly for now since reads from source data cannot access mips and it can be misleading. Change 3744253 by Guillaume.Abadie Fixes merge collisions of debug canvas rendering with High DPI, fixes stat unit on high DPI monitors, and fixes secondary screen percentages. Change 3744953 by Chris.Bunner Crash workaround. Change 3745628 by Marcus.Wassmer Temporarily disable recalctangent normal-smoothing #jira UE-52166 Change 3745942 by Guillaume.Abadie Fixes a todo in FCommonViewportClient Change 3746005 by Guillaume.Abadie Fixes stat UnitGraph on high DPI monitor. Change 3746029 by Guillaume.Abadie Oups.... Fix compilation. :D Change 3748322 by Guillaume.Abadie Shows dynamic resolution's primary screen percentage on stat unit/unitgraph console commands. Change 3748346 by Chris.Bunner Potential static analysis fix. Change 3748349 by Chris.Bunner Mac feature support flag fix on versions < 10.30. Change 3749336 by Guillaume.Abadie Fixes some spelling mistakes in dynamic resolution cvars. Thanks Daniel! Change 3749374 by Guillaume.Abadie Adds a black background on the stat unitgraph so timing curves can be seen no matter the content. Change 3749437 by Guillaume.Abadie Final UI polish up for `stat unitgraph` Change 3749719 by Guillaume.Abadie Fixes a crash when changing r.DynamicRes.MaxScreenPercentage below current screen percentage. Change 3750243 by Chris.Bunner Increasing controller's automated test timeout to allow for slower machines to complete the longest tests. #jira UE-48494, UE-51907 Change 3750728 by Guillaume.Abadie Fixes merge collision in chromatic aberration. #jira UE-52282 Change 3750791 by Guillaume.Abadie Fixes chromatic baerration R and G channel swap. Change 3751246 by Guillaume.Abadie Bypasses screen percentage apply with mobile LDR rendering. #jira UE-52089 Change 3752624 by Guillaume.Abadie Simplies dyn res state's event interface to a single virtual method. Change 3753766 by Chris.Bunner Rebuilt volumetric baked lighting test map and updated screenshots. #jira UE-52322 Change 3755108 by Guillaume.Abadie Fixes a bug where default dynamic resolution state was created at startup of server build. #jira UE-52345 Change 3755267 by Mark.Satterthwaite Fix condition controlling which features are enabled when iOS >= 10.3 - it wasn't working for iOS 11+ which was causing all kinds of problems. #jira UE-52301 Change 3755811 by Chris.Bunner Disable some new logging that was causing a stack overflow during EnginePreInit. #jira UE-52345 Change 3756983 by Mark.Satterthwaite Prevent different versions of metal_stdlib/ue4_stdlib from causing shader compilation failures due to a time-stamp mismatch between the local file & the PCH. This can happen when working with Xcode Beta releases that change the modification date, but not the content or compiler version, amongst other possibilities. #jira UE-52073 Change 3757156 by Guillaume.Abadie Fixes editor compositing with wireframe rendering. #jira UE-52017 Change 3757435 by Mark.Satterthwaite Workaround a bug in the MobileSceneCaptureRendering where it was copying the ViewInfo's ViewRect prior to it being configured by the mobile renderer. #jira UE-52327 Change 3757523 by Uriel.Doyon Fixed d3ddebug warning with unused inputs Change 3758318 by Guillaume.Abadie Cleaner fix for mobile scene captures. #jira UE-52327 Change 3759541 by Mark.Satterthwaite Don't enable Manual Vertex Fetch on iOS Metal for the moment as it isn't well tested there and will probably need further changes. Change 3695086 by Guillaume.Abadie Render thread dynamic resolution & TAA upsample. Merging //Tasks/UE4/Dev-DynamicRes/...@3694528 to //UE4/Dev-Rendering/... New features breakdown: - TAA upsample compute shader that accepts screen percentage from 50% to 200%, with a faster shader permutation for consoles; - Material no longer have to deal with BufferUV, and post process material after TAA upsample can sample any scene buffer seamlessly; - Material texture per view mip bias to produce sharper images with TAA upsample; - Render thread dynamic resolution heuristic is fully plugable by game code (for VR plugin specific heuristics); - Dynamic resolution in PIE and game builds; - Busy time queries in the RHI to be implemented on the different platforms so that the dynamic resolution heuristic can exactly associate GPU frame times with screen percentages in its history; - Game user settings to enable/disable dynamic resolution; - In editor viewport screen percentage config to previsualise and test content at different screen percentage. Fixes: - Various fixes for algorithms producing different outputs at different screen percentage. - Various fixes for algorithms sampling outside view rects. Refactors: - TAA shader - Moved some screen percentage specific members from FSceneView to FViewInfo for thread race bullet proofing. Aknowledgements: - VR plugins are broken - DFAO still have some artifacts Premiliminary review: Marcus.Wassmer Review for TAA refactor and TAA upsample shader: Brian.Karis Review for dynamic resolution: Brian.Karis [CL 3761165 by Chris Bunner in Main branch]
2017-11-16 11:36:35 -05:00
void FHeadMountedDisplayBase::CVarSinkHandler()
{
check(IsInGameThread());
if (GEngine && GEngine->XRSystem.IsValid())
{
static const auto PixelDensityCVar = IConsoleManager::Get().FindConsoleVariable(TEXT("vr.PixelDensity"));
IHeadMountedDisplay* const HMDDevice = GEngine->XRSystem->GetHMDDevice();
if (HMDDevice && PixelDensityCVar)
{
float NewPixelDensity = PixelDensityCVar->GetFloat();
if (NewPixelDensity < PixelDensityMin || NewPixelDensity > PixelDensityMax)
{
UE_LOG(LogHMD, Warning, TEXT("Invalid pixel density. Valid values must be within the range: [%f, %f]."), PixelDensityMin, PixelDensityMax);
NewPixelDensity = FMath::Clamp(NewPixelDensity, PixelDensityMin, PixelDensityMax);
}
HMDDevice->SetPixelDensity(NewPixelDensity);
}
}
}
FAutoConsoleVariableSink FHeadMountedDisplayBase::CVarSink(FConsoleCommandDelegate::CreateStatic(&FHeadMountedDisplayBase::CVarSinkHandler));