946 Commits over 549 Days - 0.07cph!
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
Add separate Matrix test for converting from a transform, verify manually
Make `Matrix.FromTransform` more generalized, move steamvr specific one into `VROverlay` where it's used
Matrix test for converting to/from transforms
Changed my mind, everyone else just uses MouseWheel regardless of whether it's 1D or 2D, let's do the same
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.
VR: Don't call GetPerformanceStats if VR isn't running (sorry)
VR: Lets be honest, nobody is using an xbox 360 controller or knuckles ev1 anymore
VR: fix minor docs blunder
VR: IsVive etc. now handled per-controller (was detecting controller type anyway before)
Might be useful for anyone that likes to mix controller types (e.g. one
vive controller and one knuckles) but the use case for this seems quite
niche?
sbox-issues/issues/994
VR: Basic internal HMD type detection
VR: More HMD types, move controller type & hmd type conversion into relevant files
VR: these should be internal, oops 🤦♂️
VR: Initial performance stats window
Just basic stuff for now, will evolve over time
VR: Move all render model related stuff into VRNative.RenderModel.cs
VR: Fix some minor input discrepancies, use ArgumentOutOfRangeException for anything out of range
VR: Clean up render model code, make everything non-blocking
VR: Hook up IVRRenderModels interface
VR: Add render model support for controllers, VR Model Renderer component (sbox-issues/issues/1001)
Uses `vr_controller_01_mrhat` if no model available
VR: Render model textures, fix axes
VR: Model renderer component is separate, takes a model renderer as property, doesn't run in non-vr
VR: More docs for `VROverlay` and `VROverlayPanel`
VR: VrInput -> VRInput, extra docs for VRController
VR: Docs, rename Input VrHand to VRController
VR: Normalize prefix casing to `VR` instead of mixing `Vr` and `VR`
VR: VRHand component doesn't fetch skinned model renderer automatically, match behaviour of all other components instead
Make `Matrix` numerics value internal, similar to the one on `Vector3`
VR: Move `VROverlayPanel`, `VROverlay`, `VROverlayInput` into `Sandbox.VR` namespace
VR: Generate extra `GetXActionData` functions with `ulRestrictToDevice` = `k_ulInvalidInputValueHandle`
VR: Menu chord bindings / action
VR: Remove legacy layer, move VR stuff into Sandbox.VR namespace
VR: Hook up WorldScale
VR: Do a reset whenever GameMenuDll.ResetEnvironment is called, just resets world scale for now
VR: Shorten Sandbox.Engine.VR to Engine.VR, maybe we should rename this class entirely
VR: Move `VR` class into Sandbox.VR
VR: Remove `VR` class, move any relevant properties over to `Input.VR`
All of this was input-related anyway, this feels like a better place to
have it. Modifying the anchor is done through `Input.VR.Anchor` now.
The only exception to this is checking if we're running in VR; use
`Game.IsRunningInVR` instead.
This avoids us clashing with the `Sandbox.VR` namespace and causing a
bunch of problems. Shouldn't be too different anyway as most things
should be covered by our components.
VR: Components don't update if VR isn't running
VR: fix some stereo-related render warnings
VR: perform copy before adding layers & don't create temporary back color buffer
VR: overlays don't block input if there's a game running, use high quality rendering now that works again
Render menu
Fix rendering `RootPanel`s in VR: separate out `IsWorldPanel` from `RenderedManually`
Clear attributes after popping a layer when rendering UI
Set VR depth resolve & refract textures, fixes glass rendering in VR
Move `vr_depth_submit` convar over to managed
Respect `vr_spectator_show_left_eye` value
VR companion view, render stereo to its own back buffer
https://files.facepunch.com/alexguthrie/1b0111b1/sbox-dev_Z2Mn6GMTLF.png
VR texture submit supports full depth submit (but we're not passing depth just yet)
Pass depth buffer to submit
Rename VRNative CheckError function to Assert
Move assert function for VR overlay errors into VRNative
Remove unused VRNative functions
Support for all types of VR textures (pose, depth+pose, depth, and neither)
Fix VR rendering crash
Disable menu VR overlay
VR component cleanup, update VR test scene
- Renamed components to better reflect their functions, dropped
Component suffix
- Drop update types - I can't think of a reason why you *wouldn't* want
these to update constantly, but feel free to tell me if I'm being dumb
- Comment everything for when our editor UI shows this stuff
Make VRNative Compositor/System/etc. all properties
TrackedDeviceInfo has battery percentage (cherry-picked from vr-stats branch)
Battery percentage just displays in `vr_info` concommand for now
Change the way we handle VRTextureWithPose - create an initial VRTexture and then (optionally) append pose data, rather than just creating a VRTextureWithPose outright
Reinstate VR overlay code using new internal VR backend
Move FromTransform into Matrix so we can re-use it
Update OpenVR SDK from 1.26.7 to 2.0.10