1,109 Commits over 1,219 Days - 0.04cph!
Make vr_per_view_lighting_constants_legacy.fxc avaliable on retail
Rip out http allow list, rules for allowed urls are http/https to fully qualified domains or loopback on ports 80/443/8080/8443
Allow list was intended to let players clearly see what a game was doing, but there's better ways to do it
vulkan: don't do the flush trick for generate mips, not needed and force flushing the gpu from non main-thread cocks up
Shader fixes, recompile some addon shaders with Vulkan too
Fix GlobalLobby preventing games from starting :(
vulkan: surprassing max device access threads in MarkIssuesCommands isn't an error case anymore
Delete trilinear threshold 360
vulkan: rewrite per thread descriptor set pools, eliminating max device access threads since .net can use a shit load - need to add some garbage collection on top of this, but will prevent the main crash that's been occuring
GlobalLobby works with new LobbyManager ( global chat works again )
Patch our C# launchers to enable discreet GPU usage by exporting NvOptimusEnablement & AmdPowerXpressRequestHighPerformance symbols
Hammer: fix crash with drag dropping map view
Don't try to visit field of a delegate, we don't need to - fixes sboxgame/issues#2642
Hammer: handle map node deletion when dragging - fixes sboxgame/issues#3092
Add editor.preferences event, passes NavigationView
Hammer: Import file undo action
Simple image asset preview widget
https://files.facepunch.com/matt/1b2311b1/sbox-dev_JD3vt5T6Q3.png
Revert "ShaderTypeManager shouldn't load manifest spritecard shader" - I wanted to stop vfxcompile loading this every time, but this breaks map compiling? 😵💫
Checkboard error shader, doesn't show through walls (same as cs2)
vfxcompile into a normal exe, remove ivfxcompile, remove loads of vmpi shit, materialsystem2 stop linking vfxcompile
Fix vfxcompile always saying building 0 shaders
ShaderTypeManager shouldn't load manifest spritecard shader
Misc materialsystem2 fixes
materialsystem2 stop trying to load rendersystemdx9
User shaders set attributes for vrad3 - fixes lightmapping, do not cast shadows, and probably other crap
Recompile blendable with fixed attributes
Don't open a blank asset resolver window if we're missing _bakeresourcecache shit
Don't need to collect vfx manually here anymore
Make new material use the right shader
Move core/base shader check to AddAsset so package references don't try to upload core shaders too
Fix vr_stencil geom shader failing to compile as antlr hates preprocessor maths
Fix CVfx::CreateFromResourceFile using wrong named block for spir-v
Fix visualize_depth shader
Hammer: asset.party materials tagged with "decal" will create an info_overlay on drag so you can put bird shit everywhere
Same DX11 texture streaming crash fix for Vulkan
Fix some shader warnings
Latest compiled shaders with DX11 + Vulkan
Delete unused "pre baked vertex animation" combo from complex
Undo accidental changes to DX11 light cbuffers
RenderTools::Draw - stick to instanceid input layout, fixes water and world panels (I'm pretty sure it's the shaders using this wrong, but I'll come back to it)
Re-enable VrLightBinnerSingleLightFastPath this is most definitely being used
Hot fix shadergraph, compile dxbc only
New rendersystemvulkan & vfx_vulkan
RenderTools::Draw handle input layout variation better
Tag rendersystem for Sentry
Use compute shader for bloom on Vulkan & fix uav barriers
::lerp fix for FXC, couple of double layer define fixes
Invalid shader handle checks in CVideoPlayerProvider::PresentYUV420Texture
New PerViewLightingConstantBufferVr_t for Vulkan, remove unused and realign, stop using structs in a cbuffer :x
Lightbinner doesn't need all this dynamic shit, max lights is compiled into shaders
Split lightbinner into legacy and new paths, strip loads of shit that Sam pinky promises me is unused
Fix race for generated hlslvariables file
Fix orphan detection doing nothing, it was tailored for content/game folders
CI wasn't using that bat 🤦 delete orphans from workflow file
Update dotnet runtime redistributable to 7.0.7
Delete unused generate_decal_normals
Shader warning/error fixes
Strictness shader fixes
Shader Resource V2 - Has a DXBC & a SPIRV block, V1 resources still work as DXBC
Don't update special dependency version number for shaders, otherwise we'll fuck all v1 resources 😵
Remove GetShaderFullPath legacy shader replacement hacks, nothing should be relying on this
encoded_normals.fxc fixes
postprocess_standard_p*.shader fixes
Fix minor old assert breaking debug builds
Map missing asset resolver ignores _bakeresourcecache
Remove FSR from renderingpipeline ( been gone from settings forever )
ShadingModel: use classes instead of structs where we have member functions
Glass shader: be explicit with Material::lerp usage
Fix ShadingModelStandard not using adjusted alpha to coverage opacity
Soundscapes always transmit, should fix long initial delay
Fix some more questionable crap I did
Fix texture compiles being dark, typoed SrgbGammaToLinear instead of SrgbLinearToGamma 🤦
Fix threading issue in navgen too
Delete some unused tier0 files
Fix threading issue in raytraceenvironment, be more explicit and capture the lambda parameters earlier when the job is queued not executed
New tier0 threadpool code from Valve
* Functor processors removed in favor of std::function jobs (lambdas)
* QueueJob always returns a SmartPtr now
* JF_PER_FRAME flag added for scheduling jobs to be completed this frame
* Improvements to contention by putting stuff on cachelines
* New simple ParallelFor usage:
```cpp
ParallelFor( 0, 10, []( int n )
{
Msg( "%d\n", n );
} );
```
The fun part: replaced all functor thread jobs with lambdas, and make it work with SmartPtrs
This is just done manually by me and isn't from Valve, so there's likely
a few cock ups - but everything I've tested has been good.
Fix all occurences of WaitForFinishAndRelease() on smart ptrs
Delete native saverestore systems
Saved myself a 5 minute change by spending hours deleting code, and I
don't think I even got it all
remove some unused convars cl_team, cl_class, (versus_)stats_highlight_interval, mapcyclefile and some debug concmds
ui: onmousedown triggers from middle mouse too, seems accidental that it wasn't
Add Asset.GetUnrecognizedReferencePaths() - returns a list of paths this asset references that can not be resolved (missing from disk)
Missing asset resolver when loading Hammer maps
If your map contains missing assets when you load your map
(after EditorReferences have been resolved), we will check if there are
matching assets on asset.party and prompt the user to install them.
We don't have to worry about updating EditorReferences here either,
as this is automatically done on save if any asset refs have a linked
package.
After the assets are installed the user will be prompted to reload the
map - this is needed to reload the missing assets.
https://files.facepunch.com/matt/1b1811b1/image%20%281%29.png
Fix Gizmo.Draw.SolidCircle transforms
Hammer: display download progress of cloud assets using gizmos
Can publish shaders & shader graphs
Hammer undos for sndscape and sound drops
Hammer: cloud materials don't stick to everything they've hovered, and can be undone now
History API for Hammer
Hammer: add undos for asset.party models & dragged entities