258,359 Commits over 4,018 Days - 2.68cph!
Added support for different cache duration in BaseEntity::GetBuildingPrivilege
Do more expensive undo for scale tool to capture potential component changes on scale
Merge: from profiling_improvements
- Fixes ProfilerBinViewer to display all available threads and fix invalid callstack depth calculation
- Fixes a bug that would prevent json from being generated on busy servers
- Fixes a bug with timelines being very-slightly out of sync
- Optim/Bugfix to filter out all constructors from being profiled
Tests: a lot of exports in the edittor and a bit of forced "bad" cases
Bugfix: ServerProfiler - properly filter out constructors
- Due to a typo (missing .) it would never match constructors and never filter them out
Using release libs built from ec8c5522
Tests: snapshot in editor on Craggy - confirmed no contructors were recorded.
Clean: removing unnecessary backticks
- And more styling improvements
Update: don't annotate a bunch of method types that should always be small
This includes Math utilities, comparisons, operator invocations and all get-properties. Should also, in theory, help with inlining.
Tests: exported a snasphot from editor
Update: more exlusions
Tests: already shipped to staging before I went on holiday
Update: able to capture allocations from all threads
Tests: exported a profile in editor.
Update: remove hack that forced early recording of data to test tracking all memory allocations
Update: able to record working set of a process
Tests: tested in editor for win, need to test on linux
Update: track VirtualSize as well
- Also properly avoid false-sharing
Update: simplifyin code around allocation buffer
- Previously it could be null, now not possible
Update: make lazy growing take into account number of created elements
This helps avoid wasting next frame if we didn't grow sufficiently
Clean: removing TODO comment
Update: record class and array size alongside the allocation size
Tests: tried export on Craggy
Update: when recording an allocation, record the last/current method as well
Tests: snapshot in editor on Craggy
Update: filter out even more methods/classes
Should lead to ~25% reduction in profiling scope by eliminating either small calls or assemblies we can't control
Tests: in editor on Craggy
Bugfix: properly ignore constructors
I missed a period, so it would never match
Bugfix: properly ignore constructors
I missed a period, so it would never match
Bugfix: ServerProfiler - sync up non-main-thread timelines to main thread
Previously it was possible to have a small gap at the very start of the snapshot on non-main thread views.
Tests: exported a snapshot in the editor.
Bugfix: ServerProfiler - properly handle sheared callstack at the start of worker threads during export
This revealed that I have a bug with non-main thread timing (things are slightly offset). Will fix next.
Tests: injected data that was tripping up the export originally. Validated that it does trip up before fix, and now exports correctly after fix. Exported 10 snapshots in the editor - no failures, and all look correct.
Add physics grabber example component that grabs objects using fixed joint
Flame turrets now cache the dominating building privilege they're linked to
If they don't have any linked TC, we use a server cached GetNearestBuildingPrivilege
Also adjusted the trigger exclude layers accordingly
Motion editor selection polish
https://files.facepunch.com/ziks/2025-02-21/sbox-dev_fNBVNJB6Du.mp4
* Object snap toggle, snaps to blocks / playhead
* Fixed drag logic for each handle
* Can't make selection go out of bounds
Fixed fog being black on some maps with HDR
Added clothing to vertical slice loadout
Shotgun trap now uses server cached GetNearestBuildingPrivledge when not attached to a building
Skip trigger check if we can't fire
Set trigger Exclude Layers
Compute uvs from params after scaling mesh
Don't rebuild mesh component if it's not active
Bugfix: ProfileBinViewer - fix callstack depth calculation
- Also replace RadioBoxGroup for threads with a Dropdown - turns out 50 threads radio buttons don't vertically fit my monitor. Who knew.
Hoping it's the same issue in the json exporter.
Tests: Opened a debug snapshot from official server.
Move Enemy Rebel to Combine tab, add icon & localization
Move ammo localizations to .properties
Hammer preview for point_worldtext
https://files.facepunch.com/rubat/2025/February21-1113-CrowdedFoxhound.jpg
Newline support in point_worldtext
Fixed Hammer breaking VMF files if they contain \n in keyvalue values
New point_worldtext features
Text spacing X/Y, orientation
slight shift in torch trans y entity position
Set IsBuildingBlockedByVehicle and IsBuildingBlockedByEntity cache time
Merge: from main
Tests: none, no conflicts
Add warnings for invalid icons in Feed - should be able to track this down now
Death messages are in everyone's console
Add networkable version of suppressing pickup notices
Up the pitch of the grenade clang sound, lot better
Add trail to thrown hand grenade
IsBuildingBlockedByVehicle merge fix
Merge from app_skip_field
Fix compile (some fields got stomped because these weren't in sync)
- updated upperBodyAimMask (removed eyes/eyelids/jaw/eyetransform)
- updated mask meta on anims
added wooden_flooring_a
https://files.facepunch.com/jason/1b2111b1/firefox_9cyHSIvkGY.jpg
https://sbox.game/facepunch/woodenflooringa
blends will come shortly
Merge from fast_debug_draw
Sync protobuf changes from Rust, fix entities with IDs bigger than 32bit IDs
Updated Rust+ protos so they are compatible with other protobuf code generators
Beehive texture size / mat setting optimization.
Change distance fade to fade to black instead of transparent, which was the original DDraw behavior.
Added missing changes to material variant that Unity didn't save for some damned reason.
merge from windmill_height_fix