1 Year Ago
Placeholder icons for local projects Addresses sboxgame/issues/issues/2468 Vis3: Use large bit vec for grid set storage and restore log warning about accessing bit out of range (this should never happen now) Disable detailed hotload diagnostics unless hotload_log >= 2 Fixed game resource editor completely rebuilding when editing values Fixes drag-editing floats for example not really working for sound scapes, etc Increase default size of GameResource editor So that soundscape editor is not squished and basically unusable without editing width every time Fix WebPanelTest throwing NRE in debugger .editorconfig changes to match Valve coding style better Delete IVfx::GetAllShaderVariables was only used for dynamic shader compiles Non Pow2 textures are allowed so make sure the tex coord scale gets set Auto upgrade "shader" kv in vmat source instead of just compiled, e.g "vr_complex.vfx" -> "shaders/complex.shader_c" Recompile all assets - mainly upgrading legacy shader names Make PlatformEntity.StartMoveBackwards/Forwards actually start moving, not just set direction Prefabs: Add Scale control to Root Entity and don't reset it back to 1 when opening editor https://files.facepunch.com/devultj/1b2611b1/sbox_IEHx2r0LU0.mp4 Remove large_crate assets Hair_Longbrown Test files Don't compile shader if they exceed our VFX_MAX_SAMPLERS Fix typo VFX_REGISTER_INPUT_TEXTURE > VFX_REGISTER_TEXTURE Fix static event exceptions throwing an error instead of showing the real exception Fix error happening when using MET or recompiling assets due to null metadata in LoadTags Recompile all materials again Apparently they had old CRCs? Scenes rendered from Sandbox.Tools apply an SVF_TOOL_VIEW flag, primarily this will stop stereo rendering on it material/prefab updates Package cleanup (#887) Added singleton PackageManager which handles all package downloading, installing. LocalProjects are self compiling and their assemblies are used to mock a Package. beer bottle changed from mesh phys to capsule and cylinder Merge branch 'master' of sbox Fix download speed Fix startup error when no ContentPath Wrap initial package loading in a try get and noisily ignore load errors instead of bootstrap init false When loading a tool package, load toolbase too Fix swapchain assert when closing editor window Fix typo in material compiler where it'd keep upgrading materials, provide some feedback too MET standardize shader to shader_c Recompile the rest of the materials that were using legacy paths before (hopefully this is all of them now) Hammer: Max lightmap resolution 8k as 16k is impractical and never worked Hammer: Fix entities from remote packages by using new PackageManager API Fix crashes/weirdness when extruding subdivided faces in Hammer sboxgame/issues/issues/2987 Report and skip when failed to install a local package Fix exception when reporting exception in event.run Give a warning when hotloading asset but couldn't load json adding concrete hotspot mat/texture, updating bricks texture for tiling continuity Merge branch 'master' of sbox When finding dependant assets always search the same path first before any other Fixes a case where the assetsystem would get confused and infinitely recompile an asset if it had a dependancy across 2 addons, e.g: dm98's dm_crowbar.vmdl depends on crowbar01.fbx which exists in: 1. addons/citizen/models/citizen_props/crowbar01.fbx 2. addons/dm98/models/citizen_props/crowbar01.fbx Now it'll always favour 2 because it's in the same addon Group Proxy preview updates when editing Transforms in the property sheet sboxgame/issues/issues/2990 Include assembly name in type identity calculation Fixes a rare issue when there are multiple types with same full name. sboxgame/issues/issues/2939 New Hair! - Big Scruffy Beard https://files.facepunch.com/daniel/1b2911b1/sbox-dev_MvCKICBk1H.jpg Quick fix to Monobrow grey .clothing file profile picture Fixed game window drag'n'drop being an error with multiple files sboxgame/issues/issues/3017 Mark some of our base libraries without HasAssets, hide them in asset browser - I'm not too sure about including base just yet Fixed project templates listview getting cut off https://files.facepunch.com/devultj/1b3011b1/HVoY9GSNkU.png Give menu addon an asset path again Fix loading addons in tools registering their events + cleanup Hammer package integration USP Match Pistol art pass for the USP pistol includes viewmodel and worldmodel meshes https://files.facepunch.com/rickgreeve/Vs3XVgXn2y.jpg USP fixes normal error fixed bodygroup setup improvements Tools always load local packages on active Rubikon: Ray cast optimizations against meshes from Dirk Make asset browser custom asset types refresh on tool compiles again EditorModelAttribute: strip _c from path Remove SFM/Dota/Etc stuff from rendering pipeline (#904) * Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it * Delete all code, shaders and dependencies from other rendering pipelines * Rewrite visualize_physics without deferred and deprecated stuff, also fix a bug with depth sorting * Fix references to old pipelines on remainder of shaders * Fix debug_sunshadow, update all_shaders list and delete compiled shaders for stuff we don't use anymore * Remove HSL Grain and old Volumetrics from SFM, note that SFM lights already cast volumetrics in our pipeline without that * Fix crash on moviedoc on maps with volumetrics * Revert deletion of debug_sunshadow_vis.vmat * Put RecoverWorldPosFromProjectedDepthAndRay on shared code Remove Panel.SetNeedsFinalLayout Remove PanelStyle.sortedRules, no need to reverse AllStyleSheets Build style rules in parallel (prevent ui hitching) HashSet benchmarks Unit test fixes Fix not updating layout on screen scale changes Adjust VS project names for built-in editor addons Move tools.package.loaded event to ToolsDll Fixed obsolete warning adding concrete material variation Merge branch 'master' of sbox Prevent game crashes when overflowing string tables Add tooltips to sound preview buttons Added failing test reproducing #929 Stricter test for #929 Fixed #929 Fixed IServerDll hotload not being able to resolve package assemblies Fixed ReflectionExtensions.ResolveType Used to not respect the assembly load context of the target module Merge branch 'master' of sbox Sandbox.UI.Panel documentation Rubikon: Use growable stack for dynamic tree query and casting, fixes crashing with many overlapping object and is generally safer WIP: ShaderGraph Comments (#907) * WIP Shader Graph Comments (some funky QT stuff going on though with GraphicsItem?) https://files.facepunch.com/conna/1b2211b1/sbox-dev_hfZT4FhruD.mp4 * Add select color choices for comments * Add description field too for tooltips * Jiggle position and reset each update to force a redraw and update hitbox (temp) * Snap to grid on resize * Let static RPCs be nested in other static classes * WIP Shader Graph Comments (some funky QT stuff going on though with GraphicsItem?) https://files.facepunch.com/conna/1b2211b1/sbox-dev_hfZT4FhruD.mp4 * Add select color choices for comments * Add description field too for tooltips * Jiggle position and reset each update to force a redraw and update hitbox (temp) * Snap to grid on resize * Call PrepareGeometryChange when resizing * Hide Comment Node, add seperate Add Comment option always on top * Update colors + add new one * Show description inside the box * Selecting a comment normally will automatically select any nodes inside of its bounds * Better selection handling for nodes inside * Added layla's resize stuff + KISS approach to selecting children. click the box selects whats inside. * Comments take priority for Property display * Deselect current nodes when pressing on comment if not already selected * Use LeftMouseButton instead coz it exists and it's nicer * Always keep inner nodes selected (check last mouse down) * Remove drag indicator from comment as not needed now * Comment UI tooltip updates when title/desc changed * When dragging a comment node on top of another comment node, alter its z index so its on top of that one * Greatly increase the max comment node size * Fix layering * Better layer system + normalize layers * Can just drag a comment node to select and drag its contents too. Double click a comment node to select only the node itself Fixed a regression with assets not loading from base tools addon Fixes Hammer/ModelDoc tree view styling Update these 2 mats that still keep recompiling ShaderGraph: Add vertex color node Don't use tools vis shading mode if we're not using a vis mode, fixes shader graph preview Warn rather than throw if a dictionary key becomes null Failing test reproducing #933 Warn when unable to find a scope method, instead of error Fixed error delegates causing an error themselves on upgrade Fixes #933 More helpful error message when trying to get default value of new field Crack down on warnings in Sandbox-Engine Rubikon: Add some error checking in broadphase update Rubikon: Use uint32 storage for touching ent pairs, fixes this hashtable from reaching max capacity when many objects are colliding When breaking a prop, play breaksound from the root physics body if we have one https://files.facepunch.com/devultj/1b0511b1/sbox_N8dwUF251P.mp4 Rubikon: Null check shape owner in a few places, should fix some crashes but remember to find out why this is happening, because it shouldn't be possible Added toilet_a Added toilet_a vmdl + physics prefab Added ceramic.surface property + hooked up ceramic/porcelain soundscape files Merge branch 'master' of sbox Don't purge shapes when removing body More null checking in broadphase update Fixed up Hammer ImagePlane Use real file extensions for Asset List drag'n'drop This helps with Hammer's ImagePlane to get the correct file extension, and also just makes sense. Drag'n'drop is able to find compiled assets Remove unused PrepareDeletion from physics body Handle encountering MethodBase operands in GetStackDelta Documentation pass on Sandbox.UI and other stuff Obsolete more HTML template methods Fixed UI.DropDown (<select>) not working from Razor Remove a camera's RenderHooks when it's destroyed - fixes effects lingering in other games Fix two lobe speculars not normalizing it's brightness (Skin glowing on dark) https://i.imgur.com/pua5PV8.png Fix specifc shaders github action job referencing from the shader yml Documentation pass on Sandbox.UI Fix documentation updates for base/editorbase dlls Documentation pass Allow Sky.Skyname and Sky.TintColor to be changed after spawn Apply environment light ambient color when light isn't baked Remove collision group from particle collision via traces, this will need to be replaced with tags Fix skybox tint, skybox expects color to be converted from srgb to linear Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods Update compiled skin shader with glow-in-dark fixes Tools: Internalize WidgetGallery static methods Do not copy gigabytes of .tga files for Sandbox.Test Documentation pass Editor: When adding a project from file, open editor preferences addon location Add support for declaring BindComponent properties that include disabled components w/ `[BindComponent( IncludeDisabled = true )]` Foliage shader: Add standard vertex color based procedural animation based on http://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch16.html Some additional changes here to Material API so we don't need to double sample for opacity & removal of dead code. Documentation: https://wiki.facepunch.com/sbox/Foliage_Shader https://files.facepunch.com/matt/1b1111b1/sbox-dev_3qi13Ck52s.mp4 Documentation pass Minor cleanups Add Editor.Application.SetStyles for consistency with Widget.SetStyles Editor.Application.SetStyle is now obsolete Citizen/animgraph: added faster walk ring + added "move_style" enum. (See commit comments.) The faster walk ring helps achieve a better blend between walking & running (the in-between strides are faster and look somewhat less awkward). The "move_style" enum lets you force walking only, or running only. Variations on upright movement could be hooked up there in the future. When client joining server - prioritize remote packages Add System.Diagnostics.UnreachableException to whitelist Add CitizenAnimationHelper.MoveStyle Don't include local packages in server required content Fix not removing local packages when disabled Ignore some other folders in NetworkAssetList Allow any Entity type to be a [ClientInput] Merge branch 'master' of sbox New Outfit Piece! - Waistcoat and Shirt https://files.facepunch.com/daniel/1b1211b1/sbox-dev_cF6L7g7l2e.png LODs and skinning adjustments coming ASAP Lock call to SetNeedsPreLayout in thread to see if this is what's causing amd stuff Re-organize boostrap to init editor addons before showing the window Glass2 (#936) * Start recoding the glass shader from scratch * Apply FrameBufferCopyTexture to entire layer rather than batch, fixes some batches returning a null texture * Let Material API handle translucency opacity properly and accounting for specular, still need to account for tint opacity * Iterate on new glass * Randomize shatterglass normals https://i.imgur.com/8EKzZZ8.mp4 * Add overlay layer and cheap rough refraction * Downsample framebuffercopytexture to be used when needed * Translucent shadows for glass https://i.imgur.com/6KYigbg.png * Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now * Pass downsample method before ComputeRenderablePassesForContext * Cleanup glass shader, fix VR and Tools preview * glass.shader_c * Update glass materials and glass blur range * Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter * Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection * Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods * Fix FBCopies showing incorrectly on tools https://i.imgur.com/1MnEiWe.png * Fix comment that slipped through experimentation, add more explaination to Cheap Glass and Overlay Layer Documentation pass Remap parameters from deprecated shaders still referenced in cloud materials Whitelist UnreachableException constructors too Citizen/animgraph: misc. small fixes Fixed handling of some special movement transitions, move_style keeps cycle when switching modes, & some comment stuff Fix framebuffer copies taking wrong dimensions Revert "Don't dispose of temp rendertarget when trying to resolve it again", This needs more thought and was causing problems This reverts commit 6ee43b38e629221c8b8faa2c43d6eb3fa81f6afb. Scene culling box (#889) Scene culling boxes lets users control scene visibility, either everything inside the box is culled or everything outside the box is culled. Fast method body hotload (#931) * 0ms hotload fast path poc when only method bodies change using MonoMod * Print individual changes during compile, show node paths * WIP check if all changes are in method bodies * Add attributes to package assemblies describing changed methods * SupportsILHotloadAttribute is added if only method bodies change * MethodBodyChangeAttribute is added for each changed method * ILHotload looks for SupportsILHotload and MethodBodyChange attributes * Fixed methods with identical IL not being replaced by ILHotload * ILHotload should never run with a debugger attached * Clean up dead code * Detour using a generated dynamic method copy from the replacing method * Documentation for Compiler.SyntaxTree.cs * Added CompilerSettings.SourcePathFilter predicate * Boilerplate for writing ILHotload tests * Fixed how file changes are emulated in FastPathTest * A bit more flexibility in fast path test case code preprocessing * Added failing fast path hotload test for changing method signatures * ILHotload: changes must be specifically within a BlockSyntax of a method * Added Compiler.UpdateParseOptions() for tests to use * Don't use ILHotload if a preprocessor define changed * Incremental syntax tree parsing * Throw when trying to debug an ILHotload swap during a test * Basic incremental compilation * Make generated code more deterministic, nicer for incremental compile * Keep track of which assembly types are actually loaded from * Re-use compiler options where possible * Changed fast hotload log to a trace * Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file * Failing test for property body changes * Cleanup ILHotload tests, failing test for overloaded method * Refactor AST processing for ILHotload * Fixes after refactor, a bit ugly at the moment * Support fast hotload for property accessors * NoticeWidget shows ms if duration < 1s * Call UISystem.OnHotload after an ILHotload * ILHotload test for nested blocks * Fixed ILHotload change detection for nested blocks * Added hotload_fast engine convar to enable / disable IL hotload * Added failing test of typeof(T) in method body hotloads * Failing test for static references * Fix references to members / types in fast-hotloaded method bodies * Allow debugging ILHotload in Sandbox.Test * Test for fast-hotloaded methods with parameter / return types defined in the changed module * Added failing fast hotload test for compiler-generated type changes * Don't attempt fast hotload if any compiler-generated type definitions change * Record event when we ILHotload, matches naming of existing hotloads so we can derive % easily * Remove defunct code about using cecil as the DMDType, not needed since we fix the references ourselves --------- Co-authored-by: Matt Stevens <matt@mattstevens.co.uk> Fall back to normal hotload if exception is thrown during FixReferences TV TV prop Merge branch 'master' of sbox Add TargetFramework attribute to compiles Add ref dlls for compile Compiler uses ref dlls Skip auto-referencing base addon if referencing a gamemode Rebase fixes Documentation + typo pass Fix hardcoded refs path 🤦‍♂️ Fix unit tests tv wood skin Fixed access control unable to resolve System.Threading, System.Memory Razor directive errors report the file + location properly in visual studio instead of showing CSC TV fixed missing face Merge branch 'master' of sbox TV Fixed tiny edge gap Compilers can reference packages Add Project/AddGameWithPackageBase unit test Use well known SCENE_RTSIZE_FRAMEBUFFER instead of manually fetching dimensions that seem to give us a 12k x 2k render target... This was flooding vram and causing errors I'm not sure what we were trying to fix when changing this, but if SCENE_RTSIZE_FRAMEBUFFER is returning the wrong dimensions for a framebuffer copy, we should fix that instead. Added failing test for changing the body of a lambda Fixed not being able to resolve private nested types Fixed #947 Failing test for async methods #947 Fixed #947 for state machine types Some safety if ILHotload AST processing throws during Parallel.ForEach Only run ILHotload AST processing when hotload_fast >= 1 Show compile errors when publishing and there are compile errors (!) When we have multiple gamemanager classes, prioritize the one from the current game package When publishing don't include package.base if we're referencing another game When an API deserialization fails, provide some context in the error message Allow projects to reference any package type Keep more log files NeedsLocalBasePackage return false if we're not a game or are referencing a game Add Package.EditorReferences Documentation pass Update some packages Code cleanups Citizen/animgraph: improved sit_offset_height The feet now pivot up and detach from the ground beyond +3 units, and the arms also follow correctly. https://files.facepunch.com/maxlebled/1b1411b1/sbox_2023-04-14_21-11-48.mp4 Let decals do software-based culling, avoids slow copy of the depth buffer just to do redundant culling, that was also causing problems Get the dimension of the biggest used axis for calculating swapchain dimensions, fixes FB copies having wrong dimensions on tools, allow texture downsamples to only downsample a region Fix glass depth being fetched incorrectly in MSAA levels Fix glass not showing properly on tools view Just set the max swapchain dimension to be the largest monitor dimension again, causes less problems while in tools mode, guarantees we won't have edge problems Pass to shader pipeline if we're rendering on skybox, fix glass reprojection being fucked up on skybox Merge branch 'master' into scenemap