userAlexcancel

587 Commits over 396 Days - 0.06cph!

Today
Return compositor & event manager by value, clean up
Today
Create vulkan transfer queue, command pool, command buffer for copying images across
Today
Reduce stack usage Vulkan headers Include headers Restructure (see desc) fpxr::Instance now handles creating a compositor. fpxr::Compositor handles creating an event manager. The idea behind this is that we want to be able to use Vulkan functions to create images, so that we can pass any valid VkImage in from an app and then have FPXR copy it over to the VkImage that OpenXR wants to use, meaning that you don't have to fuck around with passing images and image views to and from OpenXR and your application. We'll manually vkCmdCopyImage at the end of the frame before submitting to OpenXR (i.e. when rendering a layer). ```cpp fpxr::InstanceBuilder instance_builder{}; fpxr::Instance instance = instance_builder.SetAppName("fpxr") .WithGraphicsAPI(fpxr::GraphicsAPI::GRAPHICS_API_HEADLESS) .RequestValidationLayers() .WithDebugMessenger() .Build(); fpxr::Compositor* compositor = instance.Compositor(); fpxr::EventManager* eventManager = compositor->EventManager(); ```
Yesterday
Bind fpxr compositor and add everything we should need to start submitting
Yesterday
RenderTarget -> Compositor
Yesterday
Fetch rendering recommendations from fpxr Remove silly hack hard-coding all our extensions, fetch them properly
Yesterday
Don't use outdated nuget packages, let's include & link against the most recent version Re-build swapchains if any part is out of date Pass recommended render target size and refresh rate to user, but let them handle everything Compile with LTCG
3 Days Ago
Macro cleanup, assert views == 2 (until we have reason to support 1 or 4 views)
6 Days Ago
RenderTarget refactor, becomes its own class and manages frame start/end/sync
7 Days Ago
Pass vulkan-related stuff in as structure
7 Days Ago
Shove vulkan-related stuff into its own separate structure
7 Days Ago
Events
7 Days Ago
Hack around extension-related crash for now
7 Days Ago
RequirementsBuilder API Print error code inside debug callback Remove RequirementsBuilder, just fetch requirements inside SessionBuilder::Build() Treat warnings as errors
7 Days Ago
Move OpenXR requirements into Facepunch.XR Requirements are done automatically now, make instance/device extension format consistent
7 Days Ago
Fetch extensions, add support for debug callbacks
7 Days Ago
Remove direct OpenXR bindings Pass debug callback eto Facepunch.XR, make a session
8 Days Ago
Update fpxr + bindings
8 Days Ago
Use UpperCamelCase naming (same as our other stuff), static linking
8 Days Ago
openxr_loader lib Add Facepunch.XR native library Initial bindings to Facepunch.XR
9 Days Ago
Render target API (for swapchains)
9 Days Ago
Pump events correctly Track all session states, just convert directly from OpenXR to FPXR
9 Days Ago
Static library Headless support Example project
9 Days Ago
Pump events
9 Days Ago
Indentation fixes
9 Days Ago
Delete fpxr_platform.cpp
9 Days Ago
Tabs -> spaces
9 Days Ago
Initial commit
13 Days Ago
Clean up, move everything into OpenXR class
13 Days Ago
Log session state info Environment blend mode logic View configurations, create swapchains
13 Days Ago
Poll for all events (defined in https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#_xrpollevent) ApplicationRunning default Clean up
13 Days Ago
Bend over backwards to give OpenXR the exact vulkan instance it wants Remove hack & fetch instance extensions properly VRSystem has state, logical split for instance/session Basic event loop polling Handle session events, begin/end session Log unhandled events
14 Days Ago
Create Vulkan graphics binding for OpenXR, pass to session Declare OpenXR graphics requirements for render devices Temp - environment variables for openxr validation layers Properly init XrGraphicsRequirementsVulkanKHR Fetch required extensions
14 Days Ago
OpenXR handle management tweaks (need to work on this a bit) Treat handles as pointers
15 Days Ago
Obtain system ID, create session Instance properties, destroy instance on shutdown, spin up debug messenger thru XR_EXT_debug_utils
16 Days Ago
Instance creation
16 Days Ago
Attempt to make gradients match their web counterparts a little more This isn't perfect and we should really investigate the root cause for this: sbox-issues/issues/5477
16 Days Ago
Stub out everything VR-related, remove calls to SteamVR functions Initial bindings, init API, fetch & spew extensions
21 Days Ago
VR: Fix render models loading improperly
23 Days Ago
VR: Don't submit or wait for poses if the headset is in standby (prevents editor stalling when headset goes idle)
25 Days Ago
VR: Fix angular velocity & velocity coordinate conversion
27 Days Ago
VR: keep track of input deltas manually
29 Days Ago
Move ControlModeSettings into Sandbox.Engine (from tools addon) Launcher displays VR button for projects with VR support Add quick editor option to enable/disable VR without restarting the editor
30 Days Ago
Squashed commit of initial standalone exe and wizard Squashed commit of full exe implementation Wizard cleanup, shares wizard code between publish/standalone Rebase fixes
31 Days Ago
VR: Hide menu when in-game
31 Days Ago
VR: Keep track of whether we want new poses or not VR: don't use explicit timing, causes issues w/ sync and latency
34 Days Ago
Fix assembly loading, mount assemblies in their own filesystem on packages
34 Days Ago
Initial standalone build wizard Standalone player exe Export into `data\`, copy everything we want Application.IsStandalone, don't try to load menu project if standalone Load from manifest, un-hardcode paths Fix paths, temporarily copy sbproj We should be able to get away with not copying these manually, asset system should handle dependencies Clean up, slightly improved wizard Don't hard-code these paths, do all setup inside StandaloneAppSystem Standalone wizard shows basic ETA Mount everything we need, gets us as far as at least loading scenes (even if they're missing all content) Load assembly, filesystem Copy base UI textures and fonts Move standalone-specific stuff into StandaloneGameInstance Use code resources from code manifests Only copy compiled code resources, don't copy tool DLLs Standalone games that don't use citizen won't copy or mount content (saves 1GB, builds faster) Clean up, try to get as much of this standalone stuff as contained as possible Copy all core models too (mainly for box, sphere models) Wizard UX improvements Fix paths for new folder layout Change "build" naming to "export", makes more sense Wizard cleanup, share wizard code between publish/standalone Rebase fixes
35 Days Ago
Don't update scene view camera input if the editor window isn't active (sbox-issues/issues/5383)
35 Days Ago
Haptics NRE fix Clamp haptic motor values where appropriate, matching existing behaviour