1,708 Commits over 1,219 Days - 0.06cph!
.addon files become .sboxproj files
Editor .sboxproj file association launches with -tools -project filepath
https://files.facepunch.com/matt/1b1811b1/NVIDIA_Share_yyKyjxy8Lp.mp4
Make -project simpler, deactivate all other projects early and go to the game menu
Don't release jump list object unless it's succeeded (should fix crashes on Proton and maybe weird Windows setups), release another thing too
Shadergraph: only compile preview shader for the current render API
ShaderGraph: Use .source2/temp folder that is actually mounted instead of absolute path shaders, these go properly through the ShaderTypeManager and get the right offsets then
Can compile Vulkan shaders on shadergraph / shaderhook now without crashes on DX11 🤯
Remove very last DX9 references from source code 🫡
rubikon: Fix double free crash in CMultiworldSoftbodyStepper
Update Qt with backported QTextEngine fixes for shitty strings
TextEdit.AppendHtml remove invalid control characters, Qt has an open report on crashes caused by these.. and they're invalid anyway
fp.bat: use vswhere to find vcvarsall.bat
Fixed a possible crash with certain fonts when shaping strings consisting only of control characters
qt/qtbase/commit/fccd419dd632306a4bd85928223e0a56a59510ef
Unicode: fix the extended grapheme cluster algorithm
qt/qtbase/commit/be0aa6a9a230dc98994cb65d97b76be7ae695a44
Fix handling of surrogates in QBidiAlgorithm
qt/qtbase/commit/94ce755dcd823678b0338f4bb4149fe4eeb844c2
Fix crash with procedural materials
Update materialsystem2 with latest Valve code
Backporting latest Valve code to make it easier to integrate raytracing & bindless
Removes render passes that never did anything, lots of refactoring
materialsystem2 API becomes much simpler to draw stuff too:
```diff
- IMaterialMode *pMode = pMaterial->GetMode( "Default" );
- if ( pMode != NULL ) // NULL if unsupported mode
- {
- MaterialRenderablePass_t renderablePassArray[ MATERIAL_RENDERABLE_PASS_MAX ];
- int nNumPasses = pMode->ComputeRenderablePassesForContext( NULL, pRenderContext, renderablePassArray );
- for ( int i = 0; i < nNumPasses; i++ )
- {
- g_pMaterialSystem2->SetRenderStateForRenderablePass( NULL, pRenderContext, g_hLayout, renderablePassArray[i] );
- pRenderContext->DrawIndexed( RENDER_PRIM_TRIANGLES, 0, 6 );
- }
- }
+ IMaterialMode *pMode = pMaterial->GetMode( "Default" );
+ if ( g_pMaterialSystem2->SetRenderStateForMode( pMode, NULL, pRenderContext, g_hLayout ) )
+ {
+ pRenderContext->DrawIndexed( RENDER_PRIM_TRIANGLES, 0, 6 );
+ }
```
AssertDbg instead of Assert in MAT_OP_BIND paths, these are meant to be fast paths
Lazy init SceneObject.Attributes since this was allocating CSceneObject::m_pExtraData for all sceneobjects, observable ~0.3ms improvement in generating draw lists
vfxc: add Radeon GPU Analysis, can target many arch
Update fossilize
rendersystemvulkan: new pipeline manager w/ VK_EXT_graphics_pipeline_library
Fix texture filtering feature on user shaders, recompile blendable and glass
▉▋▍'▆ ▍█▌▋ ▆▄▆▉▍▆▆ ▅▉█▅▍▅▆ ▉▉ ▇▄▉▆▉ ▌▋▆
▊▋▄▊▆▉▆▆▅▌ ▊▆▆▇ ▇▉▇▌ ▊▇▌▄▊▊▊ ▄▍▋ ▌▅█▋▊█ ▄▍ ▊▊▉▉, ▍▋▇ ▍▇▅▅ ▇▍▆▍▍▄▄ ▇▉▅█▍▅ ▊▉█ ▍▇ ▍▊▋▆ ▇▌▋
Latest shaders with Vulkan RenderState fixes
Add -allowlocalhttp command line switch, only works on server and allows you to do http requests to any port on localhost or private IP addresses. This is only really gonna be useful for dedicated servers to access their apis
▆▋▊█.▌▇▅▊▊█▄▍▌ ▅▌█'▊ ▅▇█▉▆ ▆▍▇█▌▄▇ ▋▄▇█ ▇█▆▆▊▍▆ ▋▅ ▋▇█▆▆▍▊▄ ▄▊ ▆▋▇▄▉▋▅ ██▅▆▌█▊██
vfxc: can output preprocessed hlsl for vulkan
Use two stage macro expansion for RenderState and SrgbWrite so token pasting combos (and other defines) works as intended on DXC
Fixes RenderState being evaluated incorrectly on Vulkan and doing nothing or worst case crashing
`RenderState( CullMode, D_MYCOMBO );` was getting evaluated differently as FXC had some non standard macro expansion rules:
FXC: `string g_renderState_CullMode < string arg1 = "1" ; > = "" ; ; `
DXC: `string g_renderState_CullMode < string arg1 = "D_MYCOMBO"; > = "" ;;`
DXC's -flegacy-macro-expansion wasn't doing anything either
Fix Rider integration for toolbox installs - thanks faint
Latest compiled shaders - fix occasional blinking lights & fix lights on Vulkan
vfx_vulkan: do not use -fvk-invert-y on geometry shaders, only needed on vertex
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 & compile for Vulkan
Remove debug print
Selecting a tool from the spawn menu properly selects the toolgun
Lamp / Light entity: give solid tag
Fix torch model physics being too complex and failing
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)