874 Commits over 519 Days - 0.07cph!
UI: optimal gradient width prefers background size if specified
UI: improve gradients by calculating an optimal width for gradient textures
Adjust handling
Basic downforce + more handling tweaks
Basic tire smoke
Abstract shared car stuff into a BaseCarComponent
Re-compile ui backdrop filter shader w/ SPIR-V block
VR: fix LOD rendering, remove bVr from CFrustum::ComputeScreenSize
VR: Fix VROverlay xml comment
VR: Fix vulkan submit, submit depth texture to compositor
VR: Update overlays from the render thread, because SetOverlayTexture might touch vulkan queue
Forward InputData and VROverlay through to Sandbox.Game to preserve compatibility
VR: Minor VROverlay cleanup
Fix multiple box-shadow parsing (oops)
UI box / shadow / filter shader recompile
CSS box-shadow inset implementation
https://files.facepunch.com/alexguthrie/1b2311b1/sbox_QVsBt34bNx.png
sbox-issues/issues/3649
Correctly preserve worldpanel combo when popping UI layers
Almost fixes worldpanel filters, but there's still some issues with depth
Worldpanel backdrop filters correctly sample from the framebuffer
https://files.facepunch.com/alexguthrie/1b2211b1/sbox_SEP7KjTrRh.png
For sbox-issues/issues/3520
Initial experiment to see if we can turn shaders into a normal compiled resource
Clean up
Always spew info for now
Don't need ShaderHooks stuff anymore
We will need another way to selectively compile in fast mode in future
Remove useless asserts
Motion blur post-processing component
Color adjustments post-processing component (saturation, hue rotate, brightness, contrast)
Blur post-processing component
Adjust new post-process component orders
Remove unused attributes & clean up post-processing shaders
Don't stomp sceneobject flags if passed an invalid override material
Fixes glass etc.
sbox-issues/issues/4461
Only run DXT compute on platforms with full support
Re-add DXT compute staging texture for platforms that don't support block texel views (dx11)
Allocate output & intermediate textures right before dispatching DXT compute
Minor fix for GetMemRequired call, was giving it the wrong parameters 🤦♂️
Re-write dxt compute upload/read to not crash
Run DXT5 on CPU for mips > 1 until I can figure out why this isn't working
VR: Don't crash inside ControllerTypeFromString if we weren't able to fetch an index for the device
Blur LineEdit on escape pressed
sbox-issues/issues/4438
Only change ident field inside project creator window if necessary
Fixes sbox-issues/issues/4433
Add compiled cs_compress_dxt material
Texture Compression Speed Improvements (#1430)
Improves DXT5 compression by moving it to GPU, other algorithms that still run on CPU also benefit (DXT1 etc.).
Additionally fixes DXT crash (sbox-issues/issues/4165).
Remove timers & debug logs
Remove reference shader
Backport Valve GPU texture compression dispatch code
Compiled DXT shaders (optimized)
Force DXT5 for now, since that's all we have compute support for
Dispatch compute and read back
Texture barriers for Vulkan
Output full timing info
Move behind a convar so I can compare CPU/GPU easily
Staging buffer, barriers, etc. for Vulkan
Time everything (temp, will remove before merge)
Switch compression levels for a big compression speed boost (at the cost of very slightly larger files)
Test case - 4096x4096:
Old: 955ms, on disk 6948kb
New: 151ms, on disk 7253kb
Add cached flag to OnReadPixels, speeds up memory access
Speeds up 4096x4096 texture read from ~92ms to ~5ms in testing
Re-add check for compressed block texel views
Fallback gracefully to CPU on platforms with no compute support
Get rid of some redundant timing info
Update stb_dxt.h from v1.04 to v1.12
Bail from trying to compress using CPU DXT compressor if non-power-of-two (rather than crashing)
Remove forced DXT5 compression
Get rid of some redundant timing info
Update stb_dxt.h from v1.04 to v1.12
Bail from trying to compress using CPU DXT compressor if non-power-of-two (rather than crashing)
Remove forced DXT5 compression
Re-add check for compressed block texel views
Fallback gracefully to CPU on platforms with no compute support
Add cached flag to OnReadPixels, speeds up memory access
Speeds up 4096x4096 texture read from ~92ms to ~5ms in testing
Time everything (temp, will remove before merge)
Switch compression levels for a big compression speed boost (at the cost of very slightly larger files)
Test case - 4096x4096:
Old: 955ms, on disk 6948kb
New: 151ms, on disk 7253kb
Texture barriers for Vulkan
Output full timing info
Move behind a convar so I can compare CPU/GPU easily
Staging buffer, barriers, etc. for Vulkan
Force DXT5 for now, since that's all we have compute support for
Dispatch compute and read back
Backport Valve GPU texture compression dispatch code
Compiled DXT shaders (optimized)
GetAuthToken returns string without quotes
Fixes sbox-issues/issues/4381
UI: Apply `image-rendering` mode to masks
Add support for `white-space: pre;`
Fixes sbox-issues/issues/4345, can see this being useful for rich text,
syntax highlighting, etc.
VR: when saving off the HMD matrix, use the one we get directly from openvr - don't do any processing or bullshit
VR: Delete VRSkeleton, unused
VR: Rename VRControllerType -> TrackedControllerType
VR: Experimental fast function for storing reprojected HMD matrix
VR: Separate out stereo render/submit/blit, don't submit editor SceneCameras
(We still render and blit companion while in the editor, we just don't
submit a texture to the compositor while not in play mode)
https://files.facepunch.com/alexguthrie/1b2011b1/rsIQEZV0nc.mp4
VR: Fix out-of-editor rendering
VR: stop NoOpPostprocess layer trying to clear again in stereo mode
VR: Clean up stereo rendering logic, fixes aoproxy rendering, reduces memory requirements
VR: TrackedDevice defaults
Input.MouseWheel is a Vector2 now
Horizontal scroll (#1236)
Hold shift + mouse wheel to perform a horizontal scroll, if your mouse
has a horizontally scrolling wheel then that will work too.
https://files.facepunch.com/alexguthrie/1b1511b1/sbox_4y8iF5jVHk.mp4
X axis doesn't apply to ButtonCode.MouseWheelDown / ButtonCode.MouseWheelUp
Initial horizontal scroll support
Changes MouseWheel naming to MouseScroll, float parameters become a
Vector2.
Hold shift + mouse wheel to perform a horizontal scroll, if your mouse
has a horizontally scrolling wheel then that will work too.
Changed my mind, everyone else just uses MouseWheel regardless of whether it's 1D or 2D, let's do the same