22,418 Commits over 1,614 Days - 0.58cph!
Simplify scene ref gizmos, fix leak when closing scene
Fix some files (.razor) not opening in code editor from compile status window
Hotload: Skip some System.Text.Json types
Do Reverse-Z worldtoshadow in lightbinner rather than in shader code, makes existing old shaders have proper shadows with just our compatibility mode
https://files.facepunch.com/sam/1b0211b1/kzfuxUK73z.png
Dictionary control widgets can't be edited when readonly
Allow model inspector to preview animations https://files.facepunch.com/layla/1b0211b1/sbox-dev_fdrQka7PNG.mp4
renderdevicevulkan: enable reverse depth
Reverse the DepthFunc on all shaders GREATER <-> LESS
gizmo_grid: reverse manual depth bias
We need to change the depth clear value from 1->0 (in 3 different places of course)
Recompiled core shaders
Fix r_depth_debug
Default RenderState DepthFunc to RS_CMP_GREATER_EQUAL, makes shaders without a RenderState set default to it
https://files.facepunch.com/sam/1b0711b1/tt3.png
Readjust depth bias on debug shaders for reverse depth
Fix shadow in reversed depth
https://files.facepunch.com/sam/1b0711b1/tt2.png
Adjust depth bias for gizmo shaders for the increased depth precision
Tiled light culling with reverse-z
SSR with inverted z ( Way more stable )
Fix (3D) Skybox with inverse depth range
Fix SSR backtracing on reverse depth
Remove shadow depth bias from shader, it should be controlled by shadow matrix on lightbinner
DoF with reverse depth
Shaders for reverse depth
Fix glass and decal overlays depth bias
Shaders with depth bias fixes
Add shadow depth bias on matrix
Compile UI shaders for inverse depth
Reverse depth comparison on the sampler rather than on the shader for shadows, makes this more lean
Fix SSR backtracing and confidence check ( and Depth::GetLinear() )
https://files.facepunch.com/sam/1b1111b1/cxXjDfQ2g5.png
Update shaders
Reverse-Z Compatibility: Serialize depth stencil state version and reverse the depth comparison of old shaders
Update shaders with stencil state versioning https://files.facepunch.com/sam/1b2111b1/ZCuq7swn9v.png
Shaders with reverse-z and IBL
Fix OnComponentUpdate / OnComponentFixedUpdate not running
Fixed Facepunch/sbox-issues#5752
Initial VR scene for main menu
https://files.facepunch.com/alexguthrie/1b2011b1/sbox_pKFaTyqkgq.png
Remap worldpanel depth correctly, fixes depth issues
Treat worldpanels as layers
Render VR menu at 4k, scale down to fit
Basic VR world input component, menu works properly
https://files.facepunch.com/alexguthrie/1b2511b1/Desktop%202024.06.25%20-%2015.51.37.05.mp4
Update Facepunch.XR to 92bea5f
Provide poses for Facepunch.XR submit, prevents jittery and spongey tracking
Line hands up better in VR menu scene
Quick little test map just so I'm not staring at an orange texture
Init package string table before loading menu
Main menu panel has background if running in VR
Update map, add references (ideally we should be shipping these with the game, but this is easier to iterate with)
Update Facepunch.XR to 8839c8e
Remove unused InputSource and InputSourceHandle properties on TrackedDevice
Make headset a tracked object, means it can appear in Input.VR.TrackedObjects & matches controllers
Changes the API without breaking it, e.g.:
`var headTransform = Input.VR.Head;`
becomes:
`var headTransform = Input.VR.HMD.Transform;`
Update Facepunch.ActionGraphs
* Optimization when cloning
* Nicer error messages with invalid pure methods (Facepunch/sbox-issues#5743)
Add basic support for using right CTRL/SHIFT keys for input actions, I didn't include RALT because my keyboard doesn't seem to work with it (resolves Facepunch/sbox-issues#5506)
ByteStream Rewrite (#1610)
* Added failing ByteStream stress test
* Rewrite ByteStream to use Span / ReadOnlySpan where possible
Start pending components before physics step - fixes physics step running before joints are created
Look for eligible types in ResourceControlWidget, so it works with inherited types (resolves Facepunch/sbox-issues#5609)
https://files.facepunch.com/tony/1b0211b1/sbox-dev_YJS6hP69DC.png
Fix SoundEvent.GetNextSound random not using the full range of sounds
Fix NRE in Collider.RebuildImmediately
DynamicSceneObject can take vertex span instead of one at a time
Process particles in a GameSystem, all at the same time, to benefit from multithreading
Fix NRE in TeleportKeyframeBody
Allow drag drop on ResourceControlWidget if the game resources are assignable
▄██▅ ▄██▍▅▅▆▍▊▋▌▍▍█▊▄▋▌▍
! ▋▄ ▊▋█▇ ▅▍▇▄▌▌▊▇▄▌▋ ▊▅▊▆ █▋█▆▉▊.▅▄▋█.▊▅█▋.▄▇▋
▍▉▄▆▌▌▌▍▆▉▌▊▍▇▊▆▋▆▇▆█▍▊▍▍▊▊ ▅▊▅▊ ▍█▍ ▋▉▊ ▍▊▍▊▇▇▄▇▇▌ ▄▄ ▍▊█ ▋▅▆▄
Fix Component being decorated with IUpdateSubscriber, IFixedUpdateSubscriber (making it useless)
Add start and end loop points to sound meta
Don't do MakeNameUnique() if we have > 100 siblings, don't always create a hashset
Lets cache TypeLibrary.GetTypes( t ) - and invalidate when things change - this significantly improves TypeLibrary performance
Completely remove the locking from Performance.Scope
Fix "Value cannot be null." when ControlWidget cannot be created for property
Benchmark fullscreen is borderless
Optimize performance scope to not lock, not create
Use custom implementation of .HasFlag for mostly unnessecary optimization ( .Contains() )
Micro optimization, use RenderAttributes.SetComboEnum<T> instead of SetCombo (avoid boxing)
Avoid creating a Func when getting friend state
avoid creating an array when iterating CircularBuffer
Fix player count in GameLobbyGroup
Fix warnings
This stops the creation of boxed steamids, somehow
Ensure we properly network ownership changes during network orphaned actions
Enum and List control widgets can't be edited when readonly
Keep project loading stuff together and make sure we load initial collision rules after project settings file system is mounted (Fixes Facepunch/sbox-issues#5739)
Closes Facepunch/sbox-issues#5566
Throw exception when sending RPC on non-networked Game Objects (Closes Facepunch/sbox-issues#5504)
Fixed potential NRE in AudioListener component when scene camera isn't valid (yet)
Added failing ByteStream stress test
Rewrite ByteStream to use Span / ReadOnlySpan where possible
Scene.RunTrace optimization (test)
Add Diagnostics.Allocations
Temporary allocations dock
Send allocation info with benchmarks
Fix some incorrect sound paths in surfaces
Force render settings for benchmark
Actually save the project list when adding a project to it
Add OnParticleDestroy, OnParticleCreate properties for actiongraph
https://files.facepunch.com/garry/6ee12c48-30bf-40f9-a246-301d48cd61a2.mp4
FPArms: shared jump/land/airborne subgraph + fixed _delta missing from some shared names
Fixed "Hidden" banner styling. Resolves Facepunch/sbox-issues#5746
Don't think ControlWidget if it's not visible
Add Style.HasBorder
ComponentEditorWidget default size mode
Margin.GetEdges optimizationj
Add Paint.SetFont, Paint.Rect (from Styles)
Add EditorUtility.Projects.ResolveCompiler( assembly )
TabWidget has a no text mode, icons only
Add experimental StyleWidget
Add custom inspector for Particle Effect