69 Commits

Author SHA1 Message Date
Matt Stevens
276f4cbcfa Make R2 uploads more resilient in CI 2026-07-30 15:54:53 +01:00
Lorenz Junglas
62c34cc468 Remove ReferenceAssemblies upload use BuildArtifacts instead (#5309)
* Report API version and channel for build artifacts

* Add small PackageBuild exe that will replace most of CLLCompile on the backend

* Remove ReferenceAssembly upload
2026-07-14 13:22:36 +02:00
Lorenz Junglas
b6b8db0d81 Use query param instead of header for build tagging (#5289) 2026-07-08 09:14:03 +02:00
Lorenz Junglas
6c7631b309 Tag ReferenceBuild uploads with EngineVersion (#5274) 2026-07-07 21:14:26 +02:00
Lorenz Junglas
788af300ba Fine tune ASAN make it easier to enable (#5229)
Some changes to make ASAN builds run faster from 6x slowdown down to 2x.
2026-07-03 10:29:45 +02:00
Matt Stevens
655bba77f2 Strip more stuff in build artifacts same as Steam builds 2026-06-26 14:24:20 +01:00
Matt Stevens
ca04cc908e Report builds to backend 2026-06-26 13:35:49 +01:00
Matt Stevens
3d7f2ee459 Upload a build zip for each CI and PR run (#5165) 2026-06-25 22:30:06 +01:00
Lorenz Junglas
e6c9d99962 Problem matchers 2026-06-19 13:49:41 +01:00
Lorenz Junglas
8bb48bac56 Move Pipelines out of SboxBuild into GitHub yml
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.
2026-06-19 13:49:41 +01:00
Matt Stevens
5d6dccfc38 Exclude live backend tests from CI too, there are failing tests here that passed through the PR 2026-06-12 22:29:41 +01:00
Garry Newman
d95169d8fa Unit Test Cleanup (#5064)
* 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
2026-06-12 13:23:50 +01:00
Matt Stevens
7d99aa8ef5 Upload actual reference assemblies, remove some assemblies we don't need 2026-06-03 00:53:52 +01:00
Matt Stevens
18dd8ac631 Upload reference assemblies to backend as part of CI 2026-06-02 10:16:08 +01:00
Lorenz Junglas
a4da4caa26 Audio System Refactor (#4925)
* 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
2026-05-26 19:49:54 +02:00
Matt Stevens
1ed02a54fe Switch from AzureSignTool to sign dotnet tool with Azure Trusted Signing 2026-05-15 22:51:19 +01:00
Matt Stevens
f95d2a8c0c SyncPublicRepo: don't upload duplicate artifacts, e.g the Qt dlls that are LFS artifacts and then build artifacts when they're code signed (favor the build artifact) 2026-05-05 19:04:52 +01:00
Garry Newman
3be21eee9d New review api (#4722)
* Moved Api
* Update review to use new api
2026-05-01 13:33:19 +01:00
Matt Stevens
25a78fdc1a Code sign everything, any unsigned binaries are going to make Windows go ape shit 2026-04-27 14:46:52 +01:00
Matt Stevens
f38a1b5766 Exclude Linux debug files 2026-04-26 10:27:13 +01:00
Matt Stevens
1fa6eff252 Move GameCache to Upload job instead of Build job 2026-04-26 09:47:28 +01:00
Matt Stevens
9f696263bd vpk.exe does not exist, don't try to codesign it 2026-04-25 21:07:34 +01:00
Matt Stevens
af84e5b549 SboxBuild: batch code sign all our binaries at once 2026-04-25 20:39:36 +01:00
Matt Stevens
db68a71707 Split SboxBuild into two clear jobs: builds and upload - so we can upload multiple platforms and async this stuff a bit better
* 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
2026-04-25 09:58:52 +01:00
Matt Stevens
57895ce131 SyncPublicRepo: remove --force flag [skip ci] 2026-04-16 13:37:03 +01:00
Lorenz Junglas
43583e9821 Use filter-repo blob callback instead of filtering via git lfs ls-files (#4551)
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
2026-04-16 13:23:26 +02:00
Matt Stevens
5f2bd95c5e SyncPublicRepo: hlsl files are all ours, whitelist them for shader dir 2026-03-30 16:44:43 +01:00
Sam Pavlovic
d13b522781 Remove prebuilt vpc binaries on posix & Developer-BuildVpc, make BuildVpc a step on SboxBuild (#4305) 2026-03-16 08:06:52 +01:00
Lorenz Junglas
85dc57dda6 Run tests with no build flag (#4259) 2026-03-16 07:59:21 +01:00
Lorenz Junglas
e55789724f PR builds Skip C++ build and download artifacts instead (#4250) 2026-03-12 10:05:56 +01:00
Lorenz Junglas
b92a67f8e1 Sync: Upload a second manifest keyed by private commit hash (#4246) 2026-03-06 12:49:11 +00:00
Lorenz Junglas
bfc42d0a17 Faster public sync (#4245)
* Calculate file sizes and sha256 in parallel, since this is I/O bound

* Batch all files and use a single rclone call
2026-03-06 10:28:11 +01:00
Matt Stevens
c5cfe6f165 SyncPublicRepo: Handle symlinks 2026-02-17 12:20:19 +00:00
Matt Stevens
8ea6a5f6f9 Use AzureSignTool instead of relying on an installed certificate 2026-02-11 14:05:32 +00:00
Matt Stevens
1a110ed82b Sign Qt binaries (self compiled) for Windows Smart App Control bullshit 2026-02-09 09:36:18 +00:00
Matt Stevens
5423247b66 vswhere only finds visual studio 2026-01-29 13:14:07 +00:00
Matt Stevens
cc1df7e75a Map all the new files to the public repo 2026-01-26 13:31:46 +00:00
Lorenz Junglas
b8cc400d27 Revert most of SyncScript: Do rclone destination exists check ourselves (#3888) (#3891)
Turns out the --ignore-existing check works fine and something else was causing increased uploads.
Kept the cleaned up logging.
2026-01-26 08:30:02 +00:00
Lorenz Junglas
a82e13bf4b SyncScript: Do rclone destination exists check ourselves (#3888)
That way we actually know how much is uploaded

Also gets rid of verbose per file logging.
2026-01-23 12:39:33 +00:00
Matt Stevens
0b4326da12 exportsystem.dll doesn't exist 2026-01-23 10:52:44 +00:00
Matt Stevens
923d322265 Code sign managed bins, and don't sign third party bins 2026-01-23 10:36:54 +00:00
Matt Stevens
5e75600e72 Sign binaries on Windows (#3882) 2026-01-22 22:08:20 +00:00
Matt Stevens
33f9f23509 Can build using Visual Studio Build Tools for build servers
* SboxBuild: Can find Visual Studio Build Tools
* Update vswhere
* Make visualstudioautomation less horrible to compile
* schemacompiler works under visual studio build tools
2026-01-22 09:05:10 +00:00
Matt Stevens
4cf321990e Unfuck SyncPublicRepo 2026-01-15 18:16:22 +00:00
Sam Pavlovic
c8a483ed6f Clustered Culling (#3755)
* 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
2026-01-15 13:56:11 -03:00
Lorenz Junglas
236b95e0ed Disposable diagnostic (#3693)
* 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
2026-01-12 21:59:15 +01:00
Lorenz Junglas
91f8fcf183 Speed up / parallelize tests (#3587)
- 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.
2025-12-10 14:23:00 +01:00
Lorenz Junglas
6808d8768e Shutdown fixes (#3553)
* 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
2025-12-08 15:55:11 +01:00
Matt Stevens
a4d13731cc Increase SentryRelease timeout 30s -> 120s 2025-12-03 09:24:30 +00:00
Matt Stevens
eb563ad0d9 SyncPublicRepo: Upload Linux binaries 2025-12-02 17:41:54 +00:00