1,023 Commits over 1,127 Days - 0.04cph!
Fix error happening when using MET or recompiling assets due to null metadata in LoadTags
Fix static event exceptions throwing an error instead of showing the real exception
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
Update vfxcompile, less mpi shit, simpler parallel processing loop
Up MAX_LOGGING_STATE_COUNT from 128 -> 256, this is per thread and vfxcompile will have a main thread + 128 worker threads
readme: troubleshooting long paths
shaders workflow: always upload artifacts even on fail
shader workflow: can force build all
Add -renderdoc cli option for early renderdoc hooking
Don't needlessly set g_TransformBuffer or g_TiledLightBuffer on Submit, already set on init
ReadVfxFile: don't open file twice to skip bom, don't skip non utf-8 boms cause that's not gonna work
vfxcompile can specify -threads
shaders workflow uploads symbols
▌▋▍▄▆▇▍▋▍▆ ▇█▌▋ ▌▄▍'▌ ▄▍▋▄▌ ▌▇██ `▆▅▍▌██▄.` ▆▍▄▅ ▋▅▍█▊▄▌▋▄▌▆▅▅, ▄▆▄▍▋ ▌▅▋▌ ▍▋▉▄▇▍▄▋▉▍▄▌ ▄▍ ▍▆█▋▄▉▇.* ▉▍ ▍▋▌▅▇▅ █▄▌█▍▅▆▌▉
▋▌▋▆▇ ▆ ▅▇▍▇ ▄▊▆▅ ▅▅█ ▇▋ ▊▇█▋▋▊▄▌ ▅█▅▋'▋ █▍▄▅▌ ▅▆▊▋█▌ ▌▆█▅▍▋▆.▉▌█▆ ▆▆ ▅▄▊ ▆█▄▌▌▉▇▆▇▅▄▇▆▄ ▅▌▌▉▌█▅▍▍.
█▅▉▍ ▇▆ ▋▋▄ ▌█▄▆▋▉▄▇ ▍▆▌ ▌▊ ▌▆▋▇▇ ▇▋▆ ▉█▆█▊, ▋ ▆▊▍▄▉▇▄▉▌ ▄▌▅ ▆▉▉ █▍▄▅ ▋▆'▇ ▅▄▌▇▄▋ ▆▄▋▌ ▄▌▋ ▊▄▆▇█▊▇█ ▋█▆▄ ▅▊ ▅▉▆ ▇▌█▍█▍▅▅ ▇▆▇ ▋ ▆▄▄█▋▍█▊▋ ▊▅▍▌█▉ ▊▆▌▅▄ ▉▉█▅█▋▆ ▅▅▅▄. ▇▄ ▊▉█▅▊ ▇▋▋▌ █▊▋█▅ ▄▇▉▌ ▉▅▆▆.▊▉▌▍▄ ▊▇▉ ▊▉▋ ▌▅▌▅█▊█▇▇▊ ▅▌ █▍▊ ▅▋▉▆▉/▆▌█▌▌▇▊ - ▇▄▇▇▌▄ ▄▉▍▅▅▄▆▄▋▌ ▉▉▋█▍▇▉ ▉▍▇▄█▄.
vr: tracked objects (hands) also use full anchor rotation, not just yaw
vr: remove axis limitation on vr anchor rotation, enjoy throwing up
Skin shader use DXT5 (no sRGB) instead of BC7 for the combined masks texture; stops blocky artifacts & it's more appropriate
Resolves these blocky artifacts on the ao mask: https://files.facepunch.com/matt/1b2811b1/TA6eSCStlI.jpg
Obviously this is a bug with bc7e and alpha channels (there are issues open), but it's super specific to the way we're combining these textures together for this shader.
For standard color maps bc7e is supreme to all other encoders, and when we're combining channels together bc7 is rarely the right choice, so I think it's more than fine to avoid this.
Remove nocompress hint from citizen_skin_ao.png and recompile skin materials
Rework parts of CLightCookieManager to prevent crashing and optimize slightly
* Don't create new light cookies when we exceed the max, otherwise we'll just fucking crash
* Don't needlessly update the texture slices of removed cookies, new cookies will replace
* Light cookies use a strong texture handle instead of weak handle
Update README: General cleanup, build instructions, using unit tests, engine reference, using Git tips
Compute max swap chain size from all monitor dimensions - solves tools like Hammer not being able to render fully on secondary larger monitors
GetMaterialOverride return default if the override is invalid, specific fix for Hammer crash but could've been fucked elsewhere
Disable assert for render thread index exceeding maximum, not needed on DX11 and for Vulkan I'll make it valid to have a slower path when this is exceeded - although it's probably worth looking at how many threads C# can summon in the first place.
ShaderGraph: Fix WorldPosition node
hlsl_parser: Remove D3D9/GL const defs, register allocations and glsl wrappers
rendersystem: RenderContext set their associated thread index from RenderSystem_GetThreadIndex() instead of Plat_GetThreadIndex(), this avoids counting non-rendering threads keeping us well within our MaxDeviceAccessThreads
If we didn't find error shader don't bother trying to find a fallback you wouldn't get, just remove the layer, allows us to compile shaders from scratch with everything removed
Small HLSL syntax fixes for DXC + Vulkan (FXC is less strict)
Get rid of DX9/GL only CFakeSamplerShaderParamBuilder
Rewrite overcomplicated RenderState overrides, this would break as soon as you edit the grammar files 😵💫
Remove unused consts
Remove GLSL and DX9 shit macros from shaders
Fuck off all this X360 instancing shit
Get rid of last of X360 shit
Stop using legacy x360 in our user shaders too
remove dx9 from lightbinner
Shader graph: remove legacy instanced params
vr: don't log spam unknown controller types, log once
vr: aware of vive focus 3 just so VrInput.IsVive is consistent
Assert CSceneObject::ClearMeshInstanceData if owner
CSceneObject::DestroyMeshInstanceData() for owned data
Avoid dynamic alloc for scene object tags in most cases
vmat build (.vfx -> .shader mainly)
citizen compile: I think Max may have pushed whilst this was referencing some WIP stuff?
sfm: embedded c# asset browser
sfm: fix drag drop assets from asset browser
sfm: resolve drag dropped cloud assets
https://files.facepunch.com/matt/1b1611b1/sbox-dev_rr6iJVzPcd.png
SFM can load asset.party maps
https://files.facepunch.com/matt/1b0811b1/sbox_4lTLLT5Rcm.png
Oops, Refresh was renamed RefreshData sometime today
Request lobby data of advertised lobbies in chat so they stop appearing untilted
Don't mount local map projects when running the packaged version
Remove OpenGL only IVfx::GetDriverInfo()
Remove few remaining referenecs to vfx_dx9 and vfx_gl
Remove GLSL and HLSL3 from the HLSL annotation parser
Delete vfx_gl vfx_dx9 files
Don't need per vfx generated antlr code or intermediate dirs
vfx cleanup, get rid of vmpi from vfxc and other shit
Restore coreclr AMSI patch with new hostfxr init
Fix VR startup crash on AMD
Make lobby rich presence better favouring game lobbies over parties
ui early cull with global matrix, not local matrix and make sure matrices are resolved before culling occurs
PanelRenderer transformed panels with clipping set their software scissor to AABB, whilst keeping the shader scissor untransformed until render
Scope the clipping code to keep better track of the scissor and gpu scissor, fixes issues with nested transformed clips which were more common then I thought
Chat TakeLast not Take oops
Give ourselves a bit of time to connect to the global lobby
Chat lobby ad updates properly
Remove naughty words from menu chat with users Steam profanity filter
Parties are private lobbies again, stop them showing up in lobby list
Refactor Lobby -> GameLobby, replace GameLobby.Active list with static GameLobby.Current, no longer owned by LobbyFrontPage. Add PartyLobby and GlobalLobby static classes, and lobby_type metadata so we can differentiate between party and game lobby invites
Some simple anti-spam for chat
Party invites work again
Ram in global chat lobby, messy need to refactor lobbies
Can advertise lobbies in chat
rendersystem_vulkan: get this compilable again with a flag, easier to work on instead of one massive branch with all the vfx changes too
* strip all glsl support, added dxc hlsl -> spirv, and convert any built in shaders to hlsl
* backport new texture manager to match the new dx11 texture manager
* various backports to match our dx11: barriers, fences, gpu buffers, descriptor sets, etc.
* only use VK_EXT_debug_utils instead of VK_EXT_debug_marker
* strip multi-gpu
Hammer gamedata: only need to grab the package once per assembly, fixes race condition from doing it concurrently which was causing multiple entries
Hammer: fix entity tool sidebar not collapsing properly
ui: box-shadow blur bloats the rect and renders properly
Restore required texture size bindings, should've only been removed from descriptor sets
Kill legacy Fade Scale dx7/dx8/360 render property on models that's not hooked up to anything
UI: Software culling accounts for transforms too, fixes them disappearing randomly sometimes
UI: When early culling account for shadows so if we're scrolling and should only be able to see shadows it'll still render
ci: doesn't matter if git stash has nothing to stash, carry on with the build
delete more dx9 shit
Nested main thread render layers work better with texturemanager, fix potential case where some hookup jobs weren't being fulfilled properly in main thread render layers
Backport new base/dx11 rendersystem changes so other backports are easier; removes obsolete dx9 stuff, better barriers, finalize RenderTtextureDetail replaced with required mipsize
Fix nvwgf2umx crashes - these were being caused by blocking resource loads within managed render blocks; these would run the texture manager's hookup jobs, which would include async hookup jobs for texture streaming, but also the textures we wanted immediately. The problem with fulfiling these texture streaming hookup jobs is the render thread is already executing and a texture streaming hookup job is going to invalidate them by replacing the contents. This would happen more frequently for slow pcs where their texture streaming can't be fulfiled fast enough. I've hooked up a simple system to only fulfil the hookup jobs of the textures that have been requested during the render block.
tier0 GetGameInfo accessors
Delete unused RenderTextureDetail
Stop trying to bind invalid reflection texture for water since it all got stubbed, can't debug other issues with this shit spamming constantly
Don't upload core/base shaders to asset.party
Don't mount any shaders in manifest that already exist in base or core
Hunch crash fix, wait for rendering to complete before force reloading resident resources (if this resolves it, then it's probably shader resources need some extra love)
ci: only reset tracked files before pulling, keep our build artifacts so builds aren't slow as shit (hopefully)
ci: can't build-addons until test-game is run, otherwise s&box.sln isn't created
Delete orphan vmat build breaker
Fix bottom to top scrolling being inverted with flex-direction: *-reverse or justify-content: flex-end
https://drafts.csswg.org/css-align/#overflow-scroll-position
Fix Popup PositionMode.AboveLeft not working on different screen scales
Tidy up Lobby class code
Remake PartyDeck in Razor, split out Party logic to static class, move party deck along bottom social bar
Party chatbox
Style adjustments to PartyDeck, give a crown to the current party owner, add horizontal padding to player-info
Style tweaks
Add a lobby chat channel to chatbox instead of in lobby screen. Add unread messages counter, and show latest message over the chat entry
Reimplement friend list in Razor, use it for both joining games and inviting to party instead of the seperate flows. Move friend list from top nav to social nav
Simplify chat code, better styles (bigger text) + sounds, add party / lobby kicking
Caching for Steamworks Friend so we can innocently use this in Razor without worrying about performance ( was eating 2-3ms on 30 friends from a simple Linq count - and a lot lot more on more friends )
Merge pull request #721 from Facepunch/social
Fix recent typo in CManagedRenderLayer::Render setting MSAA level to invalid instead of none, causing a shit load of crashes
Recompile ui_text shader so it uses new scissoring, fixes them clipping badly with transforms
Enable Yoga fixes for absolute position percentages not accounting for padding edges, and trailing column margin