* Report API version and channel for build artifacts
* Add small PackageBuild exe that will replace most of CLLCompile on the backend
* Remove ReferenceAssembly upload
Allows us to get rid of a ton of abstraction in SboxBuild, and gets rid of a lot of GitHub API plumbing.
I feel like now that our workflows are more complex it's nicer to just use GitHub directly rather than having our own pipeline abstraction in SboxBuild.
This way we get nicer logging and error reporting, which we can\t achieve through GitHub API.
* Move all unit tests to Engine/Tests
* Fix Margin.EdgeSubtract
* Fix Capsule.Contains
* EnvironmentVariables.Remove if it's null
* Fixed ray trace never returning startedsolid
* Fix HistoryList.Navigate on empty list
* Fix GameObject.WorldPosition accepting NaNs
* Fix flex: initial expanding to the wrong grow/shrink
* Translation.TryConvert shouldn't throw on invalid enum strings
* Skip sound file tests on machines with no audio device
* Remove some dead native sound code
* Rewrite managed audio system to be lock-free
Use a snapshot triple buffering approach (main thread collect snapshots -> mixingthread processes), similar to how we handle batch drawing (mainthread collects snapshots -> render threads processes)
* Remove/Rework managed steam audio abstraction
* Add just Steam Audio effects, build ourselves via vpc
Compile steamaudio with AVX1
* Sync job becomes upload job, gets artifacts from different platform runners and uploads to Steam, still does git public sync
* Make our own actions/upload-artifact that uses networked storage instead of GitHub
When an LFS file is renamed (e.g. `libHarfBuzzSharp.so.0.60830.0` to `libHarfBuzzSharp.so`) the LFS blob stays the same. `git lfs ls-files --all --deleted` deduplicates by blob OID, so it only reports the new filename.
The old filename disappears from the list, changing historical commits and cascading a full history rewrite.
Replace the path-based LFS exclusion with inline blob content detection using git-filter-repo's `blob_callback`.
Any blob starting with the LFS pointer header is stripped regardless of filename, making the filter immune to renames
* SboxBuild: Can find Visual Studio Build Tools
* Update vswhere
* Make visualstudioautomation less horrible to compile
* schemacompiler works under visual studio build tools
* Clustered prototype
* Cleanup
* Cleanup, clustered culling uses switch case for readability, put generic math classes in math folder,
* Decals evaluate as a sphere, simpler, API for envmaps and lights dont take positionSs anymore
* Revert this shit on complex
* TiledCullingLayer > ClusteredCullingLayer
* Remove references to UseClusteredLighting/UseTiledLighting, just make it work everywhere
* Remove old tiled culling files
* Remove ClusterFrustum.hlsl since we have a generic one
* Remove OBB as we just test simple bounds for decal
* Final cleanups
* Remove references to tiled culling from native engine
* Adjust toolsvis for clustered
* Rename tiled culling references to clustered culling in render pipeline and tools visualization
* Build shaders
* Format
* Fix fog's near frustum cull plane and clustered warning from Mr. Copilot
* remove the last crumbs from tiled rendering
* Update shaders
* skybox rendering use ClusteredCullingLayer instead of TiledCullingLayer
* Volume fog still referencing MAX_LIGHTS_PER_TILE, should have it using clusters but slower for now
* Enable CA2000 in editorconfig
* Remove unused CaptureStdOut class
* Add missing dispose calls in Sandbox.Tools
* Add missing dispose calls in tests
* Add missing dispose calls in launchers
* Add missing dispose calls in Topten.RichtTextKit
* Add missing dispose calls in Engine
* Add missing dispose calls in SboxBuild
* Add nullchecks to a few dispose calls
* Fix more missing disposal calls and leaks
* Disable CA2000 for Textures
* Fix disposing too early in ImageFileTextureGenerator
* Fix disposing codec, ownership is transferred to animation
* Add missing using in ByteStream benchmark
- Added Sandbox.Test.Unit project (contains independent tests that can run in parallel)
- Modify some slow/stress tests (e.g. instead of doing a million iterations settle for 10k).
Tests run almost twice as fast now.
* Stop generating solutions via -test flag add -generatesolution
* Add TestAppSystem remove Application.InitUnitTest
Avoids some hacks and also makes sure our tests are as close to a real AppSystem as possible.
* Add shutdown unit test
shuts down an re-inits the engine
* Properly dispose native resources hold by managed during shutdown
Should fix a bunch of crashes
* Fix filesystem and networking tests
* StandaloneTest does proper Game Close
* Make sure package tests clean up properly
* Make sure menu scene and resources are released on shutdown
* Report leaked scenes on shutdown
* Ensure DestroyImmediate is not used on scenes
* Fix unmounting in unit tests not clearing native refs
* Force destroy native resource on ResourceLib Clear