userAlexcancel
branchsbox/vr-refactorcancel

43 Commits over 30 Days - 0.06cph!

1 Year 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
1 Year Ago
Not using this anymore Input stubs for legacy games
1 Year Ago
Fix rendering (this got fucked in the rebase, oops)
1 Year Ago
Merge fixes
1 Year 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
1 Year Ago
Vulkan submit tweaks
1 Year Ago
Log compositor errors 🤦‍♂️ Texture is already transitioned when we receive it in managed - don't try to transition it again!! SetSteamVrCompositorTexture signature simplified
1 Year 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
1 Year Ago
Revert "Remove unused (mostly legacy stuff)" This reverts commit ab8ea1a69e47ddff1367df4d5f00a1975def5d99. Vulkan - explicit timing/post present handoff, submit logic
1 Year Ago
Remove unused (mostly legacy stuff)
1 Year Ago
Reduce latency by running callback for pose update immediately after WaitGetPoses Managed VR GPU flush timer SubmitTextureToCompositor returns success/fail status
1 Year Ago
IsVRHeadsetAvailable, test showing a button in menu navbar if VR headset is present/available
1 Year Ago
Digital / skeletal / pose action data + helper funcs for retrieving all action data
1 Year Ago
Dispatch submit func from scenesystem Un-delete SetSteamVrCompositorTexture and do submit on render thread
1 Year Ago
VR loop changes Remove more unused
1 Year 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
1 Year 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
1 Year Ago
Start moving more over to managed - not sure we need all of this though Remove more unused
1 Year Ago
VR GPU flush timer More more IVr stuff over to managed No multiview instancing Don't set D_MULTIVIEW_INSTANCING for debug overlays
1 Year Ago
Native Vulkan submit, remove unused
1 Year 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
1 Year Ago
Update OpenVR from 1.16.8 to 1.26.7 (latest)
1 Year 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
1 Year Ago
Bounds fix
1 Year Ago
MSAADefaultNonVR -> MSAADefault
1 Year Ago
Simplify submit function even more Bind GetLastPoses Wtf I thought I deleted these? Remove unused glue structures Add GetTrackedDevicePoses back, we need it
1 Year Ago
Tidy up submit logic
1 Year Ago
Fix VRCompositorError_SharedTexturesNotSupported on dx11
1 Year 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
1 Year Ago
Render each eye into separate scratch targets and then blit into combined texture until I can figure out why this is broken
1 Year Ago
Remove native SetupStereoFrustums Remove unused camerarenderer stage RenderStereo uses correct view flags etc., clean up
1 Year 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
1 Year 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
1 Year Ago
TriggerHapticVibration
1 Year Ago
IsLeftHandDominant, Enabled
1 Year Ago
C# has control over whether vr is enabled Also add `vr_enabled` concmd so that we can test toggling VR at runtime
1 Year 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
1 Year Ago
Move a bunch of stuff in VRNative, clean up
1 Year 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
1 Year Ago
Rename enum values Remove unused input source strings
1 Year Ago
Move native wrapper functions into VRNative class
1 Year Ago
Actions, action sets, action state, analog input data
1 Year 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