1,056 Commits over 1,157 Days - 0.04cph!
Restore two layer depth prepass behaviour which seems to reduce draw calls somehow
vmdl will add animations as a proper source dependency, so they get uploaded ( #1741 )
Make sure turning direct/indirect lighting off still works on managed lightbinner layer
memdbgon.h doesn't belong in a .h file
Lightbinner layer managed
Fix ObjectHighlight.shader
Wipe my ass layer doing nothing
Unused Occlusion query layer
Remove r_tiled_rendering toggle, it is a requirement of any forward+ pipeline
Tiled culling in managed render pipeline
Depth only prepass very likely doesn't need lighting constants
Fix TreeView not passing skipEvents fully, trigger ItemsSelected at end - fixes Facepunch/sbox-issues#6845
Remove last few cloud references from core files
Make Join Game work through Steam
Depth downsampling -> managed render pipeline
Set TSPEC_TEXTURE_GEN_MIP_MAPS on RenderTargets with mips
Whitelist error event analytics
[ThreadStatic] AccessControl.Location because we test types in multiple threads and this was gibberish
More unused render pipeline
Remove SceneSystemStats (snapshots for external debugger)
Begin migrating CRenderingPipelineStandard to managed RenderPipeline with RenderLayer & ProceduralRenderLayer (w/ callback). Starting with depth prepass layer.
Skybox material preview
https://files.facepunch.com/matt/1b1211b1/sbox-dev_M57SmAq1uF.png
Remove LAYERFLAGS_NO_APP_TILING (did nothing)
Remove r_kick_dependent_views_early
Remove "VrMonitor" attribute, this might add bloom to ScenePanel - if thats something we dont want it should be exposed in a more explicit way
OffscreenParticleView isn't a thing
Update help url
Fix toolrenderlayers having wireframe inverted on every layer
Remove ToolsWireframe from all shaders, delete vr_tools_wireframe.shader - shaders dont need special code to render as a wireframe now
Hammer/ToolScene wireframe overlays uses state override instead of ToolsWireframe
Hammer wireframe uses new state override and not ToolsWireframe
Drop r_show_hipoly_draw_calls
Remove ToolsWireframe mode
Don't repeat the same thing 6 times to wireframe a layer
Update developer help url
Remove r_use_fullsort_for_opaque, we always depth prepass
Add FillMode render state override on scene layers
Remove this hidden dynamic objects stencil
mat_wireframe doesn't use ToolsWireframe but overrides renderstate on standard forward pass, this should obsolete the mode
Drop IL verification since we compile every assembly from source on clients now
Dead cubemap rendering code
Remove unused r_tiled_rendering_depth_cull
Unused VR rendering layers (probably)
Keep version, we'll use it in a different way
vfx: remove unused HEADER { } carp
vfx: remove GetDefaultBlock which is randomly not used for any but MODES block, default modes = just Default() everything else is too magic bullshit
This seems bad
GpuBuffer obsoletes ComputeBuffer to prevent confusion that it's compute exclusive
* Non templated version because sometimes your buffer will have various types
* Usage flags can be combined now, e.g a buffer can be used as an IndexBuffer but also ByteAddress for compute shader
* Added additional error checking, exposed readonly properties for count/size/usage
* Added CodeUpgrader for ComputeBuffer -> GpuBuffer
* Fix Terrain materials buffer overflowing its gpu buffer
Be explicit AmbientOcclusion is ScreenSpaceAmbientOcclusion, attribute AmbientOcclusionIndex -> ScreenSpaceAmbientOcclusionTexture
Bindless shader API class
Shader functions can specify storage class (static) and specify inline without erroring now
Add missing XeGTAO headers
blendable: vertex paint tint masks apply per layer
https://files.facepunch.com/matt/1b2711b1/sbox-dev_GItra2hhLI.png
https://files.facepunch.com/matt/1b2711b1/sbox-dev_hO2CNKhDzx.png
Add Graphics.ResourceBarrierTransition supports transitioning Textures and ComputeBuffers states currently, e.g if you wanted to signal a resource should be readable in fragment after a compute write to it
Add Graphics.DrawModelInstanced with count for procedural instancing, document other instanced methods
Add DrawModelInstanced methods to CommandList
Add CommandList.Set for ComputeBuffer<T>
Can DrawInstanced a number of instances without uploading data
Need to download cloud asset references after we've imported resources not before
Fix GameResource assets not registering before loading startup scenes (and also compile assets), remove stupid Task.Delay hack?
Fixes Facepunch/sbox-issues#6942
Prebuild the menu package
Load fonts in parallel
Open the game window in SourceEnginePreInit instead so there's not that awkward 1-2 second of nothing
EventRecord uses correct Version sha
Json warmup can be a background task. (-500ms) Make logging initialization more predictable to avoid double configuration waste
Menu doesn't need access control (-100ms)
Only initialize ILHotload in editor as that's the only context it's useful in (-100ms)
We can await on account information until after menu is loaded, otherwise we're usually hanging here for a second or more doing fuck all
ResourceLoader.LoadAllGameResource: FindFile `*` more optimized than `*.*` (150ms -> 75ms)
Update Superluminal PerformanceAPI (Stop nagging)
Update AMSI patch for .net9 so we're not wasting 100ms+ every full hotload / package load
Some additional troublesome Vulkan layer disables
Hotload ignore Refit Fixes Facepunch/sbox-issues#6843
Categorize Create Asset menu, can create code files, add templates for compute, material, unlit shaders
Use GameResource.Category in New Asset menu
Give built in resources categories too, merge with gameresources
Create templates for c# empty, component, razor code files and compute, material, unlit shaders
Create assets/folders from sidebar folder nodes
EntityTreeModel::mimeData calls base again so native interactions still work
Hammer GameObjects can have children
https://files.facepunch.com/matt/1b0611b1/sbox-dev_icF9jl1PDP.png
Suppress native transform change callbacks too which were causing angles & scale changes to not execute
Transform changes on managed execute EventPropertyEditorCoreAttributeChange_t so gizmos follow properly
Ensure GUID is saved all the time. And some validation: delete CMapGameObjects that have no GUIDs on load & create CMapGameObjects for scene gameobjects that don't have a match
Hammer: Can hover and select managed scene render meshes (ModelRenderer) as well as gizmo render bounds, whilst working alongside native traces