1,584 Commits over 1,127 Days - 0.06cph!
Native Resource Cache
Use a sliding window cache alongside weak references for our native resources in C#. There were cases where we were reloading resources every frame because the garbage collector was too good at it's job, so we'll let per frame loads hang around a bit longer.
Resolves #1306
Clear cache at opportune moments
Use NativeResourceCache for other native resources
Destroy strong handles on main thread
Get rid of debug
Fix strong handle leak in Texture.FromNative
Flush managed rts the same time native wants to, stops those huge temporary vram spikes when resizing scene editor
Fix leaked resources when CSwapChainDx11 is resized
Before: https://files.facepunch.com/matt/1b1711b1/Taskmgr_mvUnDuMcc1.png
After: https://files.facepunch.com/matt/1b1711b1/Taskmgr_fd19SDW3Xa.png
CSwapChainVulkan also flushes scratch rendertargets on resize
[pick] Fix Graphics.GenerateMipMaps downsampling an invalid mip at the end
Uncomment this stuff with updated vulkan headers
32 bit depth buffer doesn't imply reverse depth
Pixel center always 0.5f
Initial Vulkan update merge
New rendersystem interface bits
Base rendersystem updates
Sync rendersystemempty w/ public
Partial update rendersystemdx11
scenesystem updates
rendersystemvulkan bits and bobs
Minor glossary of differences we keep with upstream rendersystemvulkan
Update thirdparty/vulkan, custom Valve changes
Some more shit
Can use these vma internals now
Keep numStages at 5 for offset calculation (for now)
vk: check what depth format is properly supported
msaa stuff
Fuck all of that actually, just leave a better comment here
Make sure intermediate depth matches intermediate output color render target
ComputePipelineRenderTargetInfo doesn't care if toolview is false
This does the same shit
r_textures_list_all - see all resident textures
tier0: new memalloc aligned16 accessors
CResourceNameGetter inherits CResourceName
Don't stub CSceneSystem::SetMainSwapChain in tools, why would we not want SCENE_RTSIZE_FRAMEBUFFER the correct size
RenderTarget.GetTemporary uses 32 bit depth when needed
fix options.cpp redefinition
oops obviously the assetsystem can be null from other contexts
When materials compile new textures register them immediately - fixes cases where recompiling the vmat with a new texture would result in a missing texture
Turn on volumetric fog on the editor scenecamera
Hash fog volumes and update clipmaps when they change
Some quick gizmos for the lights and fog volume
Point & spot light components always use dynamic fog lighting mode
Add SceneLight.FogLighting
Force update volumetric fog clipmaps when fog volumes are dirty (e.g editor mode)
Network SkyCameraEntit.SkyboxScale and remove unused shit
Consolidate current game project logic further, make these tests better reflect use case
Switch from forked to stable MonoMod.RuntimeDetour
Make sure we generate a sln and sync package manager when a project isn't launched straight from the .sbproj
No more .addon upgrading
This seems redundant and like it'll cause something unpredicted in the future
Can load http:// images
If any HammerEntity fails to parse don't shit the bed for all of them
Minor glossary of differences we keep with upstream rendersystemvulkan
New rendersystem interface bits
Base rendersystem updates
Sync rendersystemempty w/ public
Partial update rendersystemdx11
scenesystem updates
rendersystemvulkan bits and bobs
[pick] new aligned memalloc methods
[pick] CResourceNameGetter refactor
Initial Vulkan update merge
Start the editor with the previous saved log level (e.g tracing stays on)
Fix events not running on instances where they have events on the base and derived class
Hang watchdog -> tools stall monitor
Splash screen is stall monitor main thread window before editor opens
Snap angle works under 1.0
Hammer: float snap angles and some more presets
Fix asserts showing as errors in intellisense
Delete loads of random shit from game
Don't explicitly set MultiProcMaxCount, defaults to # logical processors (which is 96 on our build server) - compiles 15% faster locally for me
Latest tier0 basetypes
Split everything out of basetypes.h into new or existing includes, remove very old code, typesafe numerics, bring engine up to date with these changes
typelimits.h
Explicit use stackalloc.h
Remove CRT_INCLUDES_RESTRICTED
Explicit d suffix on tier0 math funcs
Split dbg.h into assert_base.h, messages_base.h
Add tier0_utils_base.h
First pass at removing stuff from basetypes.h to commonmacros and platform
no more qboolean BOOL-shit
this intellisense bug is fixed, in fact it errors with this workaround
Explicit recttypes.h
basetypes, bitscan, enum bitwise operators
Explicit typesafe numeric headers, update all usage
Pointer handles fuck off too
Move some more to commonmacros
Fix double fsel def
Remove includes from basetypes.h
Unused
COMPILE_TIME_ASSERT
Clean up groups.vgc, sbox_game.sln can be everything -thirdpartylibs
texturedictionary to materialsystem2
▇▌▆▆▉▆▆ ▉▊▇█ ▄▅▌█▋▍▉█▊ ▌▋▌▍▋▉▄ ▊▆█▅ ▊▄▅▇ ▅█▊▌▄▉▊
Delete all these random devtool scripts, we're not using any of it, delete some other random unused stuff
One .gitignore, .gitattributes clean up obsolete stuff
Use .git-blame-ignore-revs so we can ignore formatting commits
EditorCookie seems to be null here making CI tests hang, but I don't know why it'd be null @devultj ?
Test game/server should timeout
tier0 math include shuffling
Add missing <memory> include
Strip gcsdk
Delete toolstyleeditor
Delete streamingbootstrap
Delete nvtristriplib
Delete vdata_editor
Delete diffmemstats
Delete obj_tool
Delete dmxfind
Delete mapbuilder
Delete phogen
Delete resourcecopy
Delete sceneimagebuilder
Delete vcdgen
Delete particle_import
Delete modeldoc_import
Delete modeldoc_tweak
Delete assetrename
New tier0 platform compile base
OVERRIDE -> override
Remove ALIGN_POSTs
annotations
clean up some unused
New tier0 platform compile base
OVERRIDE -> override
Remove ALIGN_POSTs
annotations
clean up some unused
New tier0 platform compile base
OVERRIDE -> override
Remove ALIGN_POSTs
C++20 Support
* Using /permissive and /Wv:18 to start
* Lots of odd fixes everywhere still coming from c++11
* Update protobuf to 24.3 and remove even older unused versions