17,239 Commits over 1,338 Days - 0.54cph!
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
Citizen/animgraph: prevent animation hitches that could happen when strafing back and forth or changing directions (see commit comment) + improved noclip blend
In order to have movement cycles always start from the same phase (left foot passing the right foot), the state machine in charge of tagging would send a reset signal every time the movement speed would go from under 2 u/s (defined as idle) to above 2 u/s (or 100 u/s in one tick). However, strafing back and forth or changing directions could satisfy these conditions right away, and the received signal would not only reset the 2D Blendspace, but also the newer lean layers, creating a visible hitch. The implemented solution is a second set of state change conditions. The current conditions still exist, but don't send a reset signal anymore. The new set of conditions can still send a reset, but they also require to have spent at least 250ms under 2 u/s first. The defined transition priority order now sets the newer set of conditions to the first slots, to then make sure the time condition can always get evaluated first.
Citizen/animgraph: your input direction is now visually reflected when airborne
https://files.facepunch.com/maxlebled/1b0711b1/airborne_wish_lean.webm
Vulkan compile for wireframe shaders
Set wireframe color as an attribute rather thaan dedicating a whole cbuffer to it, fixes hammer wireframe being dark as well since that data was not being set correctly
Pirate Outfit!
Pirate Outfit - Adjustments to Skinning and LODs coming ASAP.
https://files.facepunch.com/daniel/1b0611b1/Photoshop_JM6t21LgUC.jpg
https://files.facepunch.com/daniel/1b0611b1/pirate.png
https://files.facepunch.com/daniel/1b0611b1/pirate02.png
Backport simple water from SSR branch
Update citizen aoproxies
Merge branch 'water-backport'
Water fog and refraction
Auto-start cloud projects when downloaded from start screen
Rename "empty" to "content mode", add "-skip_start_screen" command line switch, works with jump list
StartScreen Section -> Page
Shut down engine properly when start screen is closed 🤦
Fix cloud project cloning, move into Utility
Get file/line in error report stack
StartScreen home sections are ExpandGroups
Item rows handle longer names better + display VR compatibility where appropriate
Tidy up SegmentedControl
Fix menu resources not downloading compiled versions of shit
Stats data fixes
ByteStream can be written to another ByteStream, added ReadObject
Obsolete the ClientStats class I added 4 days ago :cry:
Add EngineRpc
Add Stats variants for applying to a client from the server, throw exception when calling the wrong function from the server
Don't emit SB3000 about const fields in generic types
ShaderGraph: Center on material node when opening a graph so you don't get lost
Fix Rider integration for toolbox installs - thanks faint
Latest compiled shaders - fix occasional blinking lights & fix lights on Vulkan
[Squash] Native editor JumpList support, JumpList content, minor editor tweaks
cl_list_project is ordered, shows active & type
Separator light variant
Segmented control widget
https://files.facepunch.com/alexguthrie/1b0511b1/sbox-dev_SglhcDRI9f.mp4
StartScreen sorting
StartScreen search filter
ToRelativeTimeString adjustments: "just now" for <30 minutes, "recently" for <6 hours
Disable texture streaming when rendering asset thumbnail or video
vfx_vulkan: do not use -fvk-invert-y on geometry shaders, only needed on vertex
Fixed FastPathTest.ResolveGeneric test
Failing test reproducing #1027
Simpler repro of #1027
Fixed #1027 in cases involving array types
Simpler repro of #1027
Fixed #1027 in cases involving array types
Failing test reproducing #1027
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
Fix shadows and area lights on vulkan removing unused parameters that were fucking cbuffer alignment
Remove more unused shit from shaders, separate lighting constants between legacy and non legacy in shader code, initialize light code in DoLightShape
Creating mipped textures from managed flushes render context before generating mips, fixes corrupted menu textures with some amd drivers
Moved Rust content to asset party
https://asset.party/rust/rustassets
Make loading progress messages more explanatory
Sort jump list by last opened, cleanup
Show progress windows in center of screen
New project sets newly created project as active
Use existing progress class
Make ProgressWindow a dialog without close button
Wait for project compile to finish before showing game menu
Basic indicator while game project is loading
Fix thumbnails not uploading
Fix errors on light.static.hlsl
Fix mixed shadows blinking black on activation, make them fade properly
Remove unused p2p stuff
p2p network connection fixes
take tickrate stuff out of serverconfig
Batch publish (#1138)
* Batch Publish available on right clicking content projects when they have an org set
* Can multi-select addons in asset browser to change publish status of multiple assets
* CRC calculations happen in thread (less editor hitching when publishing)
* Add Label.OpenExternalLinks (default to true)
* Add BaseItemWidget.ItemsSelected event
* Add AssetList.OnAssetsHighlight event
* Add Checkbox.TriState
Delete old AddonManifest, AddonUpload
Add Checkbox.TriState
Asset multi-select toggle publish status
Add Label.OpenExternalLinks (default to true)
BatchPublish header
Add BaseItemWidget.ItemsSelected event
Add AssetList.OnAssetsHighlight event
Formalize asset publishing into Asset.Publishing, show party icon if published
Get rid of the description etc page on asset upload
Add rgb -> hsv and hsv -> rgb nodes