704 Commits over 610 Days - 0.05cph!
Stomp cursor delta if we're locking to canvas in scene view, should hopefully prevent camera going wild when wrapping?
Add support for editor pixmap cursors from managed, use it for custom eye cursor inside scene view
Add margin to LockCursorToCanvas, clean up
Tidy up AfterUI render stage and use that for after-UI post-processing effects, rename to `AddHookAfterUI`
Add `CameraComponent.AddHookAfterOverlay`, supports running post-processing effects after UI is drawn
Show mouse cursors inside scene view, wrap them to canvas rather than locking to center, panning follows same direction as other engines
If you preferred the previous panning behaviour there's an option for inverting it
https://files.facepunch.com/alexguthrie/1b3111b1/sbox_MUEzCxyWs7.mp4
Scene view orbit camera: account for mouse X axis, add invert options to editor preferences
sbox-issues/issues/4663
DoF doesn't need to grab depth buffer, we can use the depth prepass (thanks Matt)
Don't need to grab depth for any other post processing effects either (because they don't use them)
Compile shaders
Undo changes to Graphics.GrabDepthTexture to avoid problems
Correctly resolve textures fetched from Graphics.GrabDepthTexture
DOF uses DepthBuffer texture again + clean up a bit
Update DOF post-processing to use new Depth::GetNormalized() instead of accessing non-existent texture
Update editor play button when using F5 hotkey
sbox-issues/issues/4529
Add button to open code editor if we fail to load a project
UI: optimal gradient width prefers background size if specified
UI: improve gradients by calculating an optimal width for gradient textures
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