reposboxcancel

23,065 Commits over 1,673 Days - 0.57cph!

6 Hours Ago
Try force full checkout if we force a rebuild
Today
Only make EnvmapProbe dirty on load if it's enabled, fixes infinite loop if loading scene with an envmap disabled
Today
Make shadow fast path opt-in instead of opt-out, makes most common shaders use it by default, fixes shaders with nonstandard vertex shaders like terrain behave properly
Remove PrefabVariableWidget
Make JSON Diffing and Patching logic internal
Rename some variables
Fix PrefabVariable overrides passed to clone not working
Restore serialize shouldsave behaviour Format Fix prefab instance overrides editor interactions Editor and UI of prefab instance overrides was broken after refactoring, fixed it again. Instance overrides/patches now get updated on undo/redo Cleanup instance patch cache
Today
Remove app bar Use Inter font globally Peel everything back Initial standardized colors
Moved Wizard stuff outside of ProjectSettings namespace into its own
Restore publish and export wizards
Rejig input page categories around Page -> Category
Get rid of InspectorHeaderSection, make CollapsibleCategory work for anything and uses InspectorHeader Project settings categories have state cookies
Add JsonPointer (RFC 6901) implementation and tests Add RFC 6902 compliant JSON diffing / patch generation Use JsonNode instad of JsonDocument in pointer Add ApplyPatch functionality Generate roundtrip tests Add Test Generator for GameObject hierarchies Remove Copy & Move operations I can't make it work there are extremely rare edge cases for enormous diffs (thousands of objects and operations). The code to support these edge cases was becoming more and more unhinged and illegible. Can still tackle it later if we really need it. Add tests for LCS Work around .net runtime bug in Json.DeepEquals dotnet/runtime/issues/112769 Clone/Move attempt 2 Move optimization still fails for very large diffs -> disable for now Cleanup some debug code Simplify Json Pointer Object/Pattern detection in json Smarter pattern matching; Added Patch Generation & Application Improve handling of nested objects Prefab Instance Overrides PoC Remove old version of Json patch (RFC 6902) Simplify ObjectContext collection Add MovedObject patch operation, this operation tracks objects that have been reordered or moved to a different container. Basic tests are passing now Add complex generated GameObject diff/patch roundtrip tests Most of them are passing, ordering seems to break sometimes Some more tests parsing Parse JSON into custom data structure (tree) for diffing and patch application All gameobejct tests passing More variety in test generator Cleanup test logging Rename OwnerType -> ParentTyp Mark some prefab variable stuff as obsolete, to find out what is depending on it Get rid of more prefab variable code, build is working again Stop cloning prefabvariables Mark scene as edited on undo/redo Add undo for dropping resources onto the inspector Initial pass on prefab instance overrides https://files.facepunch.com/lolleko/2025/March/27_12-55-TrainedSpidermonkey.mp4 Add ability to write back instance changes to prefab Allows for in scene editing of prefabs https://files.facepunch.com/lolleko/2025/March/27_13-41-DimwittedTilefish.mp4 Untangle and cleanup the existing prefab code This get's rid of more prefab variable and other prefab related code. The remaining prefab code is reorganized around the new instance overrides. Overall this results cleaner and less complex prefab code. Still need to fix all the tests. Remove prefab variable UI code Reexpose some prefab instance override functionality to editor Move and cleanup write prefab instance to prefab functionality Cleanup gameobject network flag serialization code This no longer needs to be handled manually, overrides will make sure either prefabs or gos networking options will be respected. Docs & formatting We need to keep prefab variable collections for backwards compatibility Add legacy path to covert old prefab instances and variables to new instance overrides This conversion takes place on first load of the old instance. Fix legacy prefab instances being loaded with incorrect transform
Refactor, everything uses proper inspector headers so it's consistent. Moved some stuff around (https://files.facepunch.com/tony/1b0111b1/8tX5cEkCAD.png)
Today
Handle the job of adding the correct extension
Fix legacy prefab instances being loaded with incorrect transform
Today
Refactor, dumb down the naming Force adding loaders into a specific format, so they're forced to define path and type
Today
Add Asset.IsProcedural - hide some menu options etc if true
Today
Do a full checkout for a Steam branch build
Today
Do a full checkout for a Steam branch build
Cleanup gameobject network flag serialization code This no longer needs to be handled manually, overrides will make sure either prefabs or gos networking options will be respected. Docs & formatting We need to keep prefab variable collections for backwards compatibility Add legacy path to covert old prefab instances and variables to new instance overrides This conversion takes place on first load of the old instance.
Today
Refresh mounts context menu
Fixed subtitle text being incorrect, re-implement OnSave
Today
TitleBar update override calls base SceneView: don't let camera smoothing block gizmo interactions, Facepunch/sbox-issues#7790
Today
Vulkan: Separate the shared VS/PS/GS dynamic descriptor set into per-stage dynamic sets Reworks the single uber dynamic descriptor set containing every stage into 3 much smaller sets for each stage (VS/PS/GS). This is primarily a backport from the latest Source 2 branch, however this diverges on materialsystem2, on rendersystemvulkan threading and quite heavily vfx_vulkan where we use mostly our own compiler code using DXC instead of Slang. The main purpose of this is to remove the restrictions of not being able to use VK_EXT_graphics_pipeline_library with uniform texel buffers, storage images, storage buffers, storage texel buffers. Previously the only solution would be forced usage of a static descriptor set, however that isn't feasible for UGC or an easy to use engine. The layout now is: Dynamic set 0 - VS/CS (Would also be used for mesh shaders) Dynamic set 1 - PS Dynamic Set 2 - GS Set 3+ - static sets The index of static sets remains the same because sets 1/2 are reused from previously deprecated materialsystem2 owned descriptor sets. Other changes include: * VFX_MAX_SAMPLERS: 16 -> 32 * VFX_MAX_UAVS: 8 -> 16 FIXME: CRayTracePipelineVulkan needs to be upgraded but is unused currently Up SHADER_COMPILER_VERSION to 3 and refuse to load older shaders scenesystem: All layers get lighting constants, there are buffers that need to always be bound here and there is no overhead Recompile all shaders Debug: Spew when a shader doesn't support pipeline library so hitches can be blamed on geometry shaders
Today
Workflow for upload to Steam test branch
Today
Support mount/x/assets/ folder - move simple_color shader Source refreshing Make EventSystem use WeakHashSet Treenode adds itself to EditorEvent MountsNode, refresh properly, unmounting
Today
Can't workflow_dispatch on a branch
Today
Steam branch
Add SegmentedControl.HasOption Don't use reflection to populate categories, restore specific layouts for specific project types
Tighter collision matrix, input action panel
Today
Debug: Spew when a shader doesn't support pipeline library so hitches can be blamed on geometry shaders
Yesterday
Rect Lights, Capsule Lights, Line Renderer Light
Yesterday
Greatly improve SSR quality, tweaks Add Roughness::Sample
Yesterday
Logic for TraceResult.ValidHit was incorrect, fixed now https://files.facepunch.com/sampavlovic/1b3111b1/0yspbUFy98.png
Yesterday
Maybe don't leave debug prints in and be confused at the extra 2ms
Yesterday
Support creating procedural sound resource from wav file data
Yesterday
scenesystem: All layers get lighting constants, there are buffers that need to always be bound here and there is no overhead Up SHADER_COMPILER_VERSION to 3 and refuse to load older shaders Recompile all shaders
Yesterday
Vulkan: Separate the shared VS/PS/GS dynamic descriptor set into per-stage dynamic sets Reworks the single uber dynamic descriptor set containing every stage into 3 much smaller sets for each stage (VS/PS/GS). This is primarily a backport from the latest Source 2 branch, however this diverges on materialsystem2, on rendersystemvulkan threading and quite heavily vfx_vulkan where we use mostly our own compiler code using DXC instead of Slang. The main purpose of this is to remove the restrictions of not being able to use VK_EXT_graphics_pipeline_library with uniform texel buffers, storage images, storage buffers, storage texel buffers. Previously the only solution would be forced usage of a static descriptor set, however that isn't feasible for UGC or an easy to use engine. The layout now is: Dynamic set 0 - VS/CS (Would also be used for mesh shaders) Dynamic set 1 - PS Dynamic Set 2 - GS Set 3+ - static sets The index of static sets remains the same because sets 1/2 are reused from previously deprecated materialsystem2 owned descriptor sets. Other changes include: * VFX_MAX_SAMPLERS: 16 -> 32 * VFX_MAX_UAVS: 8 -> 16 FIXME: CRayTracePipelineVulkan needs to be upgraded but is unused currently Temp: All layers get per view lighting constants (these are probably worthy of a static descriptor set) Temp: Disable bloom layer - throwing too many errors which makes debugging impossible
Yesterday
Cleaning all existing pages, reduce padding/margins throughout ProjectSettingsInspector becomes the inspector for `Project`, cleanup
Yesterday
Reexpose some prefab instance override functionality to editor Move and cleanup write prefab instance to prefab functionality
Yesterday
Catch NRE when navmesh.query is being used before initialization Ideally these null check shouldn't be necessary. However, in order to avoid the checks, we would need to be able to create DtNavQuery on scene load. But this is not possible without major refactoring to recast/detour code, which is something I don't want to start right now.
Yesterday
Add procedural sound creation to sound system Add SoundFile.Create (temp API) SoundFile.Load also tries to load from mounting before trying native Generate test procedural sound when loading sound entries
Yesterday
Remove prefab variable UI code
Yesterday
Start reframing project settings window to be inline in the inspector Renaming some stuff
Yesterday
Untangle and cleanup the existing prefab code This get's rid of more prefab variable and other prefab related code. The remaining prefab code is reorganized around the new instance overrides. Overall this results cleaner and less complex prefab code. Still need to fix all the tests.
Yesterday
Fix PanelTransform applying an inverse parent matrix, affectively undoing the transforms of the parent panel. BEFORE: https://files.facepunch.com/CarsonKompon/2025/March/31_11-31-SlightIndianpalmsquirrel.mp4 AFTER: https://files.facepunch.com/CarsonKompon/2025/March/31_12-49-FastQueensnake.mp4 Resolves Facepunch/sbox-issues#6659
Yesterday
Register OnRenderUI outside of conditional so UI can render over any Camera that doesn't have the "Color" Clear Flag. Resolves Facepunch/sbox-issues#7986
Yesterday
Add [Hide] attribute to GoToDefinition and _forceChange as they should not appear in the ActionGraph inspector