branchsbox/vr-refactorcancel

43 Commits over 30 Days - 0.06cph!

6 Months Ago
Update Facepunch.ActionGraphs Support for node plugs in title bars Support for overriding getting relevant nodes without an input type Merge branch 'master' into vr-refactor
6 Months Ago
Not using this anymore Input stubs for legacy games
6 Months Ago
Fix rendering (this got fucked in the rebase, oops)
6 Months Ago
Merge fixes
6 Months Ago
[Squash] Initial managed VR code, delete VR project [Squash] Add `IsLeftHandDominant`, `Enabled` properties + `TriggerHapticVibration` [Squash] Document TrackedDevice, remove unused, update skeletal data Submit all the info we need to camera renderer + start rewriting stereo rendering [Squash] Initial managed VR / stereo rendering logic [Squash] Poll events & get poses correctly [Squash] Don't do blit copy for each eye (works as long as `r_aoproxy_enable 00`), submit for DX11 https://files.facepunch.com/alexguthrie/1b1311b1/qrenderdoc_wLfY06ol2a.png [Squash] Bind GetLastPoses, clean up Update OpenVR from 1.16.8 to 1.26.7 (latest) [Squash] Fix IPD calc, camera positioning, fix InchToMillimeter that was converting from mm to inch [Squash] Dispatch submit func from scenesystem, do submit on render thread [Squash] Digital / skeletal / pose action data + helper funcs for retrieving all action data Remove unused (mostly legacy stuff) # Conflicts: # engine/Sandbox.Engine/EngineLoop.cs Revert "Remove unused (mostly legacy stuff)" This reverts commit ab8ea1a69e47ddff1367df4d5f00a1975def5d99. Vulkan - explicit timing/post present handoff, submit logic # Conflicts: # engine/Sandbox.Engine/EngineLoop.cs Remove runtime VR enable/disable Doesn't work for vulkan which is what we're aiming to eventually primarily support - ideally we want something like this issue describes: ValveSoftware/openvr/issues/993 I did try re-creating the render device whenever VR was enabled/disabled but couldn't get this working and I think fixing it is out-of-scope here. [Squash] Refactor HMD-specific tracking code [Squash] Finish VR analog/digital input, clean up [Squash] Vulkan submit tweaks, log compositor errors
6 Months Ago
Vulkan submit tweaks
6 Months Ago
Log compositor errors 🤦‍♂️ Texture is already transitioned when we receive it in managed - don't try to transition it again!! SetSteamVrCompositorTexture signature simplified
6 Months Ago
Remove runtime VR enable/disable Doesn't work for vulkan which is what we're aiming to eventually primarily support - ideally we want something like this issue describes: ValveSoftware/openvr/issues/993 I did try re-creating the render device whenever VR was enabled/disabled but couldn't get this working and I think fixing it is out-of-scope here. Refactor HMD-specific tracking code Test overriding interleaved reprojection Finish VR input Document ivrcompositor Clean up
6 Months Ago
Revert "Remove unused (mostly legacy stuff)" This reverts commit ab8ea1a69e47ddff1367df4d5f00a1975def5d99. Vulkan - explicit timing/post present handoff, submit logic
6 Months Ago
Remove unused (mostly legacy stuff)
6 Months Ago
Reduce latency by running callback for pose update immediately after WaitGetPoses Managed VR GPU flush timer SubmitTextureToCompositor returns success/fail status
6 Months Ago
IsVRHeadsetAvailable, test showing a button in menu navbar if VR headset is present/available
6 Months Ago
Digital / skeletal / pose action data + helper funcs for retrieving all action data
6 Months Ago
Dispatch submit func from scenesystem Un-delete SetSteamVrCompositorTexture and do submit on render thread
6 Months Ago
VR loop changes Remove more unused
6 Months Ago
Remove unused Calculate predicted seconds to photons from now for tracked device poses Update HMD transform in various additional places, should help with latency Fast path specifically for *hmd* pose retrieval, should help a tiny bit with latency VRSystem.Update refactor Shorten GetPredictedSecondsToPhotonsFromNow to GetPredictedTime, use GetDeviceToAbsoluteTrackingPose for GetHmdMatrix
6 Months Ago
Squashed revert back to commit 052bf8ece71b6de44f62c108626c6444a936f90f Going to tackle this stuff differently Fix IPD calc, camera positioning, fix InchToMillimeter that was converting from mm to inch Remove compositor benchmark stuff, we're not using it at the minute Try GetLastPoses instead of GetTrackedDevicePoses - might not be the right call since we can use the latter to predict X ms ahead Half IPD
6 Months Ago
Start moving more over to managed - not sure we need all of this though Remove more unused
6 Months Ago
VR GPU flush timer More more IVr stuff over to managed No multiview instancing Don't set D_MULTIVIEW_INSTANCING for debug overlays
6 Months Ago
Native Vulkan submit, remove unused
6 Months Ago
Native -> managed VR system, call managed WaitGetPoses inside VrPostPresent Render & submit serially + native submit test Use managed VR system checks in some native code
6 Months Ago
Update OpenVR from 1.16.8 to 1.26.7 (latest)
6 Months Ago
Delete VR project Simplify MaterialSystem2 VR code, don't do any native VR setup Initial basic managed openvr setup - just logs hmd position to console for now Debug all tracked devices Skeletal input data Actions, action sets, action state, analog input data Move native wrapper functions into VRNative class Rename enum values Remove unused input source strings Hook up compositor, settings, device properties & info Move constants Move a bunch of stuff in VRNative, clean up Move VR stuff over to Sandbox.Engine, start deleting old VRGlue - breaks VROverlay for now Only init if -vr specified, ensure active Init overlay, bindings for dashboard visible & drawing controllers Move vr-specific input into Sandbox.Engine Proper way of converting matrices from steamvr -> sbox, push test hmd data to game C# has control over whether vr is enabled Also add `vr_enabled` concmd so that we can test toggling VR at runtime IsLeftHandDominant, Enabled TriggerHapticVibration Document TrackedDevice, remove unused, update skeletal data Move VR class into Sandbox.Engine (forwarded to Sandbox.Game) and respect anchor for tracked transforms Compositor submit bindings, cleanup Submit all the info we need to camera renderer + start rewriting stereo rendering Deleted subviews, crossed/nohmd stereo modes, auto-fidelity, no longer uses multiview instancing Clean up Initial managed VR / stereo rendering logic Remove tracked device debug spew SceneCamera.RenderStereo, allow eye targeting Build & override camera frustum based on params provided by steamvr Clean up unused shit Remove native SetupStereoFrustums Remove unused camerarenderer stage RenderStereo uses correct view flags etc., clean up Render each eye into separate scratch targets and then blit into combined texture until I can figure out why this is broken Initial compositor submit, Vulkan only for now Transition texture to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL Poll events & get poses correctly Check error inside PollEvents Clear first draw Don't do blit copy for each eye (works as long as `r_aoproxy_enable 00`) https://files.facepunch.com/alexguthrie/1b1311b1/qrenderdoc_wLfY06ol2a.png Submit & impl submit for DX11 Fix VRCompositorError_SharedTexturesNotSupported on dx11 Tidy up submit logic Simplify submit function even more Bind GetLastPoses Wtf I thought I deleted these? Remove unused glue structures Add GetTrackedDevicePoses back, we need it MSAADefaultNonVR -> MSAADefault Bounds fix Merge fixes
7 Months Ago
Bounds fix
7 Months Ago
MSAADefaultNonVR -> MSAADefault
7 Months Ago
Simplify submit function even more Bind GetLastPoses Wtf I thought I deleted these? Remove unused glue structures Add GetTrackedDevicePoses back, we need it
7 Months Ago
Tidy up submit logic
7 Months Ago
Fix VRCompositorError_SharedTexturesNotSupported on dx11
7 Months Ago
Initial compositor submit, Vulkan only for now Transition texture to VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL Poll events & get poses correctly Check error inside PollEvents Clear first draw Don't do blit copy for each eye (works as long as `r_aoproxy_enable 00`) https://files.facepunch.com/alexguthrie/1b1311b1/qrenderdoc_wLfY06ol2a.png Submit & impl submit for DX11
7 Months Ago
Render each eye into separate scratch targets and then blit into combined texture until I can figure out why this is broken
7 Months Ago
Remove native SetupStereoFrustums Remove unused camerarenderer stage RenderStereo uses correct view flags etc., clean up
7 Months Ago
Initial managed VR / stereo rendering logic Remove tracked device debug spew SceneCamera.RenderStereo, allow eye targeting Build & override camera frustum based on params provided by steamvr Clean up unused shit
7 Months Ago
Document TrackedDevice, remove unused, update skeletal data Move VR class into Sandbox.Engine (forwarded to Sandbox.Game) and respect anchor for tracked transforms Compositor submit bindings, cleanup Submit all the info we need to camera renderer + start rewriting stereo rendering Deleted subviews, crossed/nohmd stereo modes, auto-fidelity, no longer uses multiview instancing Clean up
7 Months Ago
TriggerHapticVibration
7 Months Ago
IsLeftHandDominant, Enabled
7 Months Ago
C# has control over whether vr is enabled Also add `vr_enabled` concmd so that we can test toggling VR at runtime
7 Months Ago
Move VR stuff over to Sandbox.Engine, start deleting old VRGlue - breaks VROverlay for now Only init if -vr specified, ensure active Init overlay, bindings for dashboard visible & drawing controllers Move vr-specific input into Sandbox.Engine Proper way of converting matrices from steamvr -> sbox, push test hmd data to game
7 Months Ago
Move a bunch of stuff in VRNative, clean up
7 Months Ago
Delete VR project Simplify MaterialSystem2 VR code, don't do any native VR setup Initial basic managed openvr setup - just logs hmd position to console for now Debug all tracked devices Skeletal input data Actions, action sets, action state, analog input data Move native wrapper functions into VRNative class Rename enum values Remove unused input source strings Hook up compositor, settings, device properties & info Move constants
7 Months Ago
Rename enum values Remove unused input source strings
7 Months Ago
Move native wrapper functions into VRNative class
7 Months Ago
Actions, action sets, action state, analog input data
7 Months Ago
Delete VR project Simplify MaterialSystem2 VR code, don't do any native VR setup Initial basic managed openvr setup - just logs hmd position to console for now Debug all tracked devices Skeletal input data