Copy default action set to standalone VR projects.#10433
Closed
Loafiat wants to merge 926 commits intoFacepunch:masterfrom
Closed
Copy default action set to standalone VR projects.#10433Loafiat wants to merge 926 commits intoFacepunch:masterfrom
Loafiat wants to merge 926 commits intoFacepunch:masterfrom
Conversation
ValueTypes where unclearly put on the heap when assigning `object originalValue` during cloning. Those types now use a fast path that remains boo and allocation free by using compiled expression trees
* Avoid callbackbatch aciton allocation and closure Store the CommonCallback and GameObject/Comonent Instance instead of an action * Scene push uses struct instead of DisposeAction Avoids action allocation
We call objectIndex Add/Remove a lot and the t.GetInterfaces allocates an array each time. We can avoid this using a simple ReflectionCache.
I don't think the count is very useful and it costs us a string interpolation/allocation
the nitpick of all time
* Add exactFullName to TypeLibrary.GetType
…#4239) * Fix terrain dissapearing after changing subdivision factor * make sure we clamp subdivision between 1 and 4
* Can query FileIds, Author * Store the published file id so we can open an existing workshop item instead of publishing a new one each time, hook up OnComplete action while we're here
* Calculate file sizes and sha256 in parallel, since this is I/O bound * Batch all files and use a single rclone call
* [MakeDirty] allocates a Action delegate even if it's not used. * Use field keyword instead of manual backing fields * Add fast path for render object cloning, avoids expensive round trip through JsonPopulator
Avoids list allocation for GameObjects that have no components
Avoid RenderGroupKey allocations This would allocate a lot easily 60Mb/s. Instead of a dedicated struct we now compute a 64bit hash and use that for render grouping. Remove per frame HashSet, List and LINQ allocations
* More accurate and less allocation heavy version of Task.Delay - Shoot a single task delay for longer intervals - Only use expensive polling for the last sub threshold * Avoid ExecutingJob allocations when not tracking jobs
* Start moving SSR to bindless * Classify pass stub * Separable bilateral upscale, 0.3ms > 0.08ms, not happy with it still * start classify and intersect indirect * Commandlist support for UAV barriers and clearing a texture and gpubuffer * Simplify this, move classify to it's own shader * All indirect * ResourceState.IndirectArgument missing from ResourceStateToVulkanFlags switch * Fix indirect, all works * classify doesnt get skybox * Add Clear method to CommandList for clearing render target colors * bilateral upscale indirect too * Cleanup * Simplify bilateral upscale, With RADIUS=1, separable saves only 3 taps (6 vs 9), but costs 3 barriers + shared memory + atomics — the synchronization overhead far exceeds 3 extra texture loads of doing it with a normal X Y loop * Dotnet format, increase roughness threshold (we can afford it 😘 ) and dont need to discard these buffers on disable * compile shaders * this shouldnt be a property * Add FillGPUBuffer method for efficient buffer filling using native GPU commands
…4200) CollisionEventSystem is quite alloc heavy especially the action wiring causes 10+ heap allocations per collider.
Collect pending acks in List rather than spamming async tasks. Process List in Tick.
So we don't allocate when a GameObejct doesn't have any tags Fast & alloc free pass for GameTags.SetFrom
Let's see if this helps
* Fix uninteractable age, height sliders * Fix scrolling for item list * Consistent order for item groups * Centre UI for ultrawides * Stop MenuUtility.RunTask invoking everything twice in editor * Fix icon, label alignment
…#4488) Co-authored-by: RumBugen <vladislavwanner@gmail.com>
Make sure they are not negative
* Log warning isntead of asserting when a prefab file is missing * Prefab Instances with missing prefab files now show up as broken in the hierarchy Their data is retained similar to missing components so if the file gets restored the instance will recreate properly https://files.facepunch.com/lolleko/2026/April/07_15-50-CarelessIraniangroundjay.png
* Loads now cancel correctly on disconnect/close across all entry points * Unified some loading flow and UI logic * Fixed errors when cancelling mid-load
…te (Facepunch#4489) * Raise GameInstance load exceptions in editor instead of silently continuing with a shutdown instance * Key ResourceLoader watchers on AssemblyQualifiedName instead * Init AssetTypeAttribute Name from TargetType name if it's null
* Common components * Replace PackageCard with GameCard in content blocks, wrapped grid layout * Move GameCard to New/ folder, use ThumbWide for all sizes * Add `overflow: clip` and `overflow: clip-whole` modes * New game hub layout, hero * Layout + hero tweaks * Hero tweaks * Clean up content blocks, make it so that game cards don't clip on hover * Dynamic mask * Don't bother building CL for panels outside scroll view (400% perf benefit in main game hub) * Disable 3D bg when not visible (50% performance benefit) * Cards take their sizes from the image within them * Stash tweaks before big refactor * Initial hero carousel * Better carousel transitions * Try and reduce allocs inside CL combos * `background-playback-state` CSS property (`paused` or `running`, applies to video `background-image`) * Make out-of-focus carousel elements more obvious (no playing video, darkened) * New branding * Tweak navbar * Carousel shows full thumb if not visible, helps with visual noise * Accurate vote percentage 🙈 * Fix some carousel jankiness * Navbar feels less disjointed * Rebake menu lighting & envmaps * Finalize https://files.facepunch.com/alexguthrie/1b0311b1/bZKOQIQD0o.jpg * Trim down visual noise https://files.facepunch.com/alexguthrie/1b0311b1/oJh4qqaPsC.jpg * Gradient https://files.facepunch.com/alexguthrie/1b0511b1/uCyZyolkXE.jpg * Format * .heading labels use heading vars * Carousel slower time between auto switch * No play button on GameCard * Content blocks full width * Adjust GameCard sizes * Content block header padding * Add MenuHelpers.PlayGame, GameModal uses it, make hero "Play Now" button use it --------- Co-authored-by: Matt Stevens <matt@mattstevens.co.uk>
* Convert Model to Mesh https://files.facepunch.com/louie/1b0811b1/sbox-dev_gwjjqTHfS7.mp4 * Match hammer keybind
Fix transform update regression from 7b853ce Rotation.AlmostEqual default threshold was too loose (0.0001 dot-product ~ 1.62° angular tolerance), causing SetLocalTransform to silently drop small transform updates. - Rotation.AlmostEqual: default delta 0.0001 -> 0.0000001 (~0.05°), use MathF.Abs(Dot) to handle antipodal quaternions (q === -q) - Transform.AlmostEqual: use Rotation's own default instead of passing the Position/Scale delta to a dot-product metric
This reverts commit 2caf916.
Add `DeferGeneration` property to skip navmesh generation during scene load, allowing tiles to be generated and unloaded on demand at runtime. New public API: - `NavMesh.DeferGeneration` - skip tile generation on load - `NavMesh.RequestTileGeneration`/`RequestTilesGeneration` - fire-and-forget via cache loop - `NavMesh.UnloadTile`/`UnloadTiles` - remove tiles from the navmesh
* preload resolutions on init
Author
|
Not sure why formatting failed, I checked through and it seems to be all good. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
Thanks for contributing to s&box ❤️
Please fill out the sections below to help us review your change efficiently.
Summary
Fixes issue where the default action set wouldn't be copied over to exported standalone projects.
Motivation & Context
Currently when exporting a standalone VR project in S&box the project fails to open in VR, giving the error: "Failed to attach ActionSet to Session". This PR fixes this by including the actionsets in the export if the project supports VR.
Implementation Details
I was debating converting CoreWhitelist to an IEnumerator or adding an empty string which would be set to the right path if your project is in VR mode, but ended up just using Linq to append the path to the array when GetCoreFiles is executed.
Screenshots / Videos (if applicable)
Checklist