1,091 Commits over 1,188 Days - 0.04cph!
Enable vulkan 1.2 features (scalarBlockLayout, bda, descriptor indexing, etc.) instead of using all the extensions
Vulkan 1.2 is minimum requirement, device support remains the same. We already required several extensions that are core in 1.2 such as descriptor indexing
Shaders compiler uses scalar layout instead of std140/std430 layout (VK_EXT_scalar_block_layout is core in 1.2)
This is a much less confusing layout for structures in HLSL, allowing for
tighter packing and generally matching their C++/C# counter parts.
e.g:
```hlsl
struct T {
float a_float;
float3 b_float3;
}
```
The size of struct T was previously 32 bytes with GL layout and is now 16 bytes.
The offset of b_float3 was previously 16 bytes and is now 4 bytes with scalar layout.
More info on rules (previously GL, new Scalar)
microsoft/DirectXShaderCompiler/blob/main/docs/SPIR-V.rst#memory-layout-rules
https://maraneshi.github.io/HLSL-ConstantBufferLayoutVisualizer/
Optimze Pixmap.FromTexture (don't swizzle the format 3 times)
4096x4096 339ms -> 115ms
2048x2048 90ms -> 50ms
1024x1024 20ms -> 10ms
Bottleneck is going to be the data read from GPU -> CPU, not much else to do
Materials store the shader version they were compiled against, added Source( ShaderVersion ) for shaders to query what the current material was compiled against for backwards compatability
Blendable: Use hemi octahedron encoded normals same as complex for better quality, remove a redundant texture lookup per layer, remove the 5th unused blend layer because wtf
https://files.facepunch.com/matt/1b1811b1/mspaint_qIv6MYpn8Y.png
Fix failing to start game if VRSystem returns nullptr for extensions
Material.FromShader uses path and not just name - allows shaders of same name in different folders
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView
CSceneObject::GetCTransformUnaligned()
Delete random Hammer shit
Don't use shadercache if we're force recompiling. Output total time.
Leftover log, useless include
Fix race condition with GetTemporaryFolder() where we'd end up with a .source2.source2.source2 folder
Mount cloud maps from snapshot too (repeated logic from MapInstance bleh)
Add referenced resources in the Scene to the vmap. Fixes Facepunch/sbox-issues#6839
Hide/Unhide works on Hammer GameObjects
Resolves Facepunch/sbox-issues#7200
Delete all this dota grass code
Add dump_scene concmd, puts a clone of the current scene onto the clipboard for debugging
MapInstance: Don't delete all our children we've just received from the network snapshot
Mounted VPKs are part of the snapshot, we need these mounted before we deserialize the received scene / networked objects
MapInstance doesn't load networked hammer gameobjects on clients as they'll be in the snapshot
ToolRenderLayer shouldn't force Forward mode as it disables face selection and other crap
Hammer wireframe is just normal render pipeline wireframe now instead of all the special case layer stuff
ci build-menu uses new path
MenuBuild uses ToolAppSystem so everything is set correctly like Application.IsHeadless which was likely stopping it from compiling new menu dlls
Hammer Wireframe Overlay: white wireframe color works again
Wireframe mode is white in game/scene again, fix depth test being disabled in scene, also bind expected lighting constants
Fix invalid depth comparison sampling on well known 16 bit textures by targeting D16 and sampleable flags, these textures are used in place of the shadow depth buffer when shadows are disabled
▌▆▌ ▌▊█▅ ▅▆▆▉▋ █▉ ▍▄▄█▋▌▊▋ ▊▄▆█▇█ ▄▇▋▆▇▍▆▇
▄▄▅▉▊ ▌▆▊▌▅█▅▍▌▆▅▇▊█▊▅ ▄▋▅ ▅▇▍▊▄█▋▇ ▍▋█▌▊▇▇▌▇▌ ▋▅ ▅▆▍▋█▌█▊█▆▍ ▍▆▍▇ ▇▍▉▊'█ █▄▆▆▇▇ █▄ ▇▊▆▆▇▊, ▍▍▇▅▅ ▅▄ ▄▍▋▋█▊▊ ▄# ▍▍▌▆▇▊▅▄▋ ▇▄▇ █▇▌ ▍▊ ▊▉▄▇ ▄▋ ▇▉▇▇▅ ██▍ ▋▌▍▇▊█ ▄▄▍▌ ▌▊▌▄▋▉▋▅▋▄▋
▄▊▊▍▆█ ▊▍▇▄▊▇█▇ ▉█▍▅ █▊▊ ▉▅ `▉▇▍▆.▋▋▊▍▊▇▅▊()` ▅▆ `██▄▇.▄▊▋▆▆▇▋▆()`
▄▋▄▇█▅▉ █▅ ▉▆▅▍▅'▊ ▄▍▍▆▊ `▇▆▉ ▊█▆▉▌█▆▅ = ▉▉▉▋.▌▍▇▍▄▅▋▄; ▌▆▍█▍▍▋▇()`
▄█ ▋▄▋▄▇▊.▊█▍▉▉▌▌▌▉▇█▌▌▉██ ▄▄▆██ ▌▍▌▅▊▋▋▍▄▍▋▌▇▉▍▅▉▆▋▆▊▆▋▍ ▌▉ █▍▆▄▋▌▌▆▋ █▅█▌▄
▅▆▅▍▊▌ ▆▊▍█▍▍█ ▄▆ ▅▉▌█▅▌ ▆▄ ▅▆▉▉▌▍▆ ▍▌▌▋█▄▉▅ █ ▅▊▋▌▊▅ ▄▇▅▉ ▉▋ ▉▇▄▍▍▆▍
! ▊▄▇█▊▊█▅▄▋▉ ▅▊█▇ ▆█▄ ██▄▆▆█ ▆▇█▇█▋▋▉ ▌▉██▌▆▅ (▅▅: ▍▍▊▉█▍▇)
▆▅▉▌▉▋▍█ ▋▍▅▆-▆▅▊▆▍▍▆ ▅▄▍█▆▍▆ ▆▄▆▊ ▌▌█▅ ▄▇▆ -> ▌▄▄ ▊▍▊▌▅ ▌▍ ▄▇▋▋ ▊▅▌▇▇▊▇
Obsolete GpuBuffer.UsageFlags.Counter, Structured and Append both have it automatically, this flag was only for D3D11. Both VK and D3D12 behave the same way for this.
Whitelist System.IParsable
Closes Facepunch/sbox-issues#7253
Whitelist System.UInt128
Closes Facepunch/sbox-issues#6892
Whitelist a few assembly attributes a library was using
▍▄▌▌▅█▍▉█ ▆▊▇ ▊▍▌▊▋▉▄▍▍█▆▄▅ ▅▌▊▉▇▋▅▍ █▇▌█▊▉▊▋ ▇▄▋▊▆▊▇▉▋▋
▇▉▇▌ ▌▄▋▄▌▇▍█.▆▇▇▉▊█▌▄▆▆█▆▊▍▉▉ ▆▇ ▌▌▍▆▉▊▆▆▋▋▌▍▆
Vulkan: Structured buffers also have a UAV hidden counter
Add GpuBuffer.UsageFlags.Counter for usage with structured buffers
Enables IncrementCounter and DecrementCounter in HLSL
Can also use GpuBuffer.SetCounterValue and GpuBuffer.CopyStructureCount
These both previously and still do work with Append buffers
Added default 0 offset parameter to GpuBuffer.CopyStructureCount
█▄▆▇█▍▉█▄ ▅▉▆▍▊▆.▆▅█▅▊▌▌▋.▆▉█▇▉▌.▉▊▆▊▋▉▌▅▇▍ & ▄▉█▅▄▌▇▉▆▌▋ & ▌▉▅▊▍▊▆▄▌▄▊▍▉█▉ - ▇▊▆▄▇ ▅▋▉ ▅▅█ ▊▋█▅ ▌▅▊▄ ▋▅▄▍▋▍▊▄▉▌ ▇▉▌▋▉▉ ▋▇ ▆▉▊▄
Make wireframe models work in Hammer again, colored without a combo. Fixes Facepunch/sbox-issues#7215
Build shaders
Add needed modes to template shaders, this ToolsVis combo is the plague
Restore two layer depth prepass behaviour which seems to reduce draw calls somehow
vmdl will add animations as a proper source dependency, so they get uploaded ( #1741 )
Make sure turning direct/indirect lighting off still works on managed lightbinner layer
memdbgon.h doesn't belong in a .h file
Lightbinner layer managed
Fix ObjectHighlight.shader
Wipe my ass layer doing nothing
Unused Occlusion query layer
Remove r_tiled_rendering toggle, it is a requirement of any forward+ pipeline
Tiled culling in managed render pipeline
Depth only prepass very likely doesn't need lighting constants
Fix TreeView not passing skipEvents fully, trigger ItemsSelected at end - fixes Facepunch/sbox-issues#6845
Remove last few cloud references from core files
Make Join Game work through Steam
Depth downsampling -> managed render pipeline
Set TSPEC_TEXTURE_GEN_MIP_MAPS on RenderTargets with mips
Whitelist error event analytics
[ThreadStatic] AccessControl.Location because we test types in multiple threads and this was gibberish
More unused render pipeline
Remove SceneSystemStats (snapshots for external debugger)
Begin migrating CRenderingPipelineStandard to managed RenderPipeline with RenderLayer & ProceduralRenderLayer (w/ callback). Starting with depth prepass layer.
Skybox material preview
https://files.facepunch.com/matt/1b1211b1/sbox-dev_M57SmAq1uF.png
Remove LAYERFLAGS_NO_APP_TILING (did nothing)
Remove r_kick_dependent_views_early
Remove "VrMonitor" attribute, this might add bloom to ScenePanel - if thats something we dont want it should be exposed in a more explicit way
OffscreenParticleView isn't a thing
Update help url
Fix toolrenderlayers having wireframe inverted on every layer