17,156 Commits over 1,308 Days - 0.55cph!
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 )
Add Tiled Rendering Quads to debug view list
Fix foliage in VR, let's rethink how we do multiview API later..
StartScreen sections
Derive ProjectRow from generic ItemRow
Experimental - show cloud projects inside start screen
Show available cloud packages in startscreen
Clean up Home.UpdateProjectList
FPArms/Punching: prefix all bool parameters with b_ like in the Citizen graph
Remove all hacks we had for a second shadow atlas for viewmodel shadows
Sharp viewmodel shadows prototype, remove last references to viewmodel atlas
Mixed lights support viewmodel shadows, recalculate frustum to always focus on the best alignment for the viewmodel bbox so it always stays sharp
https://cdn.discordapp.com/attachments/1118902360970899456/1119228713591132230/sbox_0031.mp4
SSAO test for viewmodel
Fix dynamic ambient occlusion not being applied for CalculateDiffuseAmbientOcclusion
Try a few more AO techniques
Composite viewmodel AO, and this should be the right way to do HBAO
Remove nonsense resolution scale stuff in common.fxc that's unreferenced in code and causing problems (defined before system.fxc wtf)
Allow compute on renderpipeline to do multiple dispatches, HBAO as compute,HBAO bilateral blur
Use hammersley rather than bluenoise, looks a ton better
Cleanup, controls for ambient occlusion, do indexed light viewmodel shadows sequentially, cast world shadows on viewmodel
Assign what shadow index a baked light shall read from rather than iterating through the entire buffer and figuring it out, much faster way to do baked light shadows
Proper way to do light indexed on ShadingModel Light API too
Sanity checks, remove debug views and some minor adjustments for viewmodel shadows
Remove last traits of g_flResolutionScale
[pick] remove shaders that don't exist anymore from CI building
Method for getting shadow index for baked light compatible with vulkan
Fix stupid typo, GetShadowIndexForBakedLight compiles fine on vulkan now
Fix another typo and compile core shaders
Fix another typo and compile core shaders
Lightbinner Separation between VK/D3D11 (#1133)
* Add LightBinnerLegacy so we don't kludge our lightbinner with stuff we can't change on d3d, rename our main lightbinner to LightBinnerStandard
* Remove deprecated cbuffers
* Add lightbinner_legacy, separate both lightbinners based on the rendering system we use
Compile glass on vulkan, have proper curve for albedo color absoption for shadows
Obsolete Game.TickRate.set
Def tick rate 50 as it was
Add LightBinnerLegacy so we don't kludge our lightbinner with stuff we can't change on d3d, rename our main lightbinner to LightBinnerStandard
Remove deprecated cbuffers
Add ligthbinner_legacy, separate both lightbinners based on the rendering system we use
Add a generic Texture.GetPixels<T>() (#1117)
* Added Texture.GetPixels<T>(srcRect, slice, mip, dstData, dstFormat, dstStride)
* Fix reading non-zero slice from 3D texture (#1118)
* CopyToStagingResource: only use 1 mip level / array slice in staging texture
* CopyToStagingResource: fix copy destination offset
* GetPixels: add dstSize parameter instead of dstStride
* Add Texture.GetPixels3D<T>()
* Texture.GetPixels( int mip ) now gets everything for array / volume textures
* Added Texture.GetPixel3D() to complement Texture.GetPixel()
* GetPixels: fix nativeDstRect size
* GetPixels: stride fixes
* GetPixels: reading from non-zero mip level fixes
GetPixels: reading from non-zero mip level fixes
Added Texture.GetPixels<T>(srcRect, slice, mip, dstData, dstFormat, dstStride)
Fix reading non-zero slice from 3D texture (#1118)
CopyToStagingResource: only use 1 mip level / array slice in staging texture
CopyToStagingResource: fix copy destination offset
GetPixels: add dstSize parameter instead of dstStride
Add Texture.GetPixels3D<T>()
Texture.GetPixels( int mip ) now gets everything for array / volume textures
Added Texture.GetPixel3D() to complement Texture.GetPixel()
GetPixels: fix nativeDstRect size
GetPixels: stride fixes
Strip unused from AsyncRequestStatus_t, give more descriptive status strings
Squash commit of everything so far
Tests use AddFromFileBuiltIn when adding base addon
TickRate project settings
Added Texture.GetPixels<T>(srcRect, slice, mip, dstData, dstFormat, dstStride)
Fix reading non-zero slice from 3D texture (#1118)
CopyToStagingResource: only use 1 mip level / array slice in staging texture
CopyToStagingResource: fix copy destination offset
CopyToStagingResource: only use 1 mip level / array slice in staging texture
CopyToStagingResource: fix copy destination offset
Move JumpList into Sandbox.Engine, set up in ToolsDll
Store friction hit surface (last) and if we've changed hit surface stop any previous effects and sounds
Citizen/animgraph: enabled bouncyspring on pelvis lean additive
Added Texture.GetPixels<T>(srcRect, slice, mip, dstData, dstFormat, dstStride)
Fix reading non-zero slice from 3D texture (#1118)
Add Mass and Direction named control points for friction particles. Mass is body mass, direction is body velocity normal. CP0 is already setting position and contact normal
Lower destroy time for effects
Reorganize scrape data in surface def, lower default values. Don't fallback to rough by default. If it's a smooth scrape and there's no effects for that - do nothing by default
Surface is considered smooth by default, can set roughness factor higher for rough surfaces...
Get material for triangle by index for shape 2 on friction events should fix all friction events against world surfaces having hit surface be "default"
JumpList icons
https://files.facepunch.com/alexguthrie/1b2811b1/JumpList_Icons.png
Better JumpList API, add multiple & set categories, show projects in there
AnimGraph: Add bouncy spring mode to input damping using RK4
Fix stupid typo, GetShadowIndexForBakedLight compiles fine on vulkan now
Use ProjectRow instead of custom LaunchpadProject, move some stuff in there
Use Global.BackendTitle and BackendUrl for asset.party link
Remove borders from ProjectRow and SidebarButton
Experimental JumpList support
Recompile glass with support for world mapping
Remove msdfgen, been there forever and we never used it for anything, better to implement it in C# if we ever need it
[pick] remove shaders that don't exist anymore from CI building
Method for getting shadow index for baked light compatible with vulkan
"Open Empty Environment" button
For anyone that isn't working on a specific game (addon creators, mappers, etc)
SidebarButton.Clear acts more like a link
Rewrite RTK linebreaking algorithm
Draw pin button on right, make it blue when project is pinned
SidebarButton.Link functionality
Don't need to show the "show on startup" toggle outside of editor prefs
Fix ToggleSwitch not displaying correct value when starting value is true
StartScreen layout - pin menu row to top, only scroll through project launchpad itself
Moved glass to asset party
https://asset.party/facepunch/sboxassets
Add CopyToStagingResource3D for when trying to get texture pixels of a 3d texture slice, CopyToStagingResource only works for 2d resources
Proper way to do light indexed on ShadingModel Light API too
Sanity checks, remove debug views and some minor adjustments for viewmodel shadows
Remove last traits of g_flResolutionScale
Make EditorPreferencesWindow modal
StartScreen settings button, opens editor prefs
ToRelativeTimeString extensions for TimeSpan and DateTime (moved from PackageCard)
Launchpad project card displays relative time string
Project pinning
SidebarButton Link and Clear types are classes
Fancy switch button
https://files.facepunch.com/alexguthrie/1b2711b1/sbox_CXvCYYRATC.mp4
Remove Window.IsOnTop, calling Window.SetModal does the same thing
Rename switch to ToggleSwitch, move into Widgets/
StartScreen UI improvements, move custom widgets into partial class
Add TaskSource.WorkerThread()
Added test for GameTask.WorkerThread() / GameTask.MainThread()
Patch our C# launchers to enable discreet GPU usage by exporting NvOptimusEnablement & AmdPowerXpressRequestHighPerformance symbols