Skip to content
This repository has been archived by the owner on Jan 31, 2022. It is now read-only.

Build rework and Linux is finally completely back to life :) #43

Merged
merged 36 commits into from
Nov 6, 2021

Conversation

okawo80085
Copy link
Owner

List of changes:

  • Fixed display component on Linux(see openvr issue #1583 and 8f1814e)
  • Fixed driver build(see 53ada3e)
  • Fixed a small bug in the offline Linux installer build script
  • Changed default udu settings for the driver to none, making it the poser's responsibility to register it's devices with a Emsg_uduString manager message(see manager protocol)
  • Minor changes in readmes

I mostly tested it, but i still need review and more testing by someone who is not me

The changes in this branch are up for a release after it's merged

Updated CMake build rules to use our openvr fork, also added our patched fork of openvr as a submodule

CMakeLists.txt: Updated build rules to use our fork of openvr
src: driver_hobovr.cpp: Switched to use global openvr_driver.h include
openvr: Submodule of our patched fork of openvr
Added new build and install instructions, the full process is now simpler
Compiled the latest build of the driver on linux
To ensure no headers from src/ref are missed, its been added as an include directory
Turns out openvr_driver API has this really weird issue
where passing a member variable to TrackedDevicePoseUpdated() breaks HMD devices, more info in openvr issue #1583

driver_hobovr.cpp: All devices moved to use locally defined pose structs before calling TrackedDevicePoseUpdated
ref: hobovr_device_base.h: Removed member pose struct and switched to local variables for TrackedDevicePoseUpdated calls
… a bit

Related to openvr issue #1583 and the previous commit
Latest Linux driver source compiled for testing
This build is functional, so im updating the version and finalizing this branch
Display component works nicely now, no crashes, not like there were any.
Changed default udu settings to none, starting with no devices registered and making the posers register their devices using the Emsg_uduString manager command
Changed a few comments, updated pre build steps
Added lib files to the ignore list, with the new cmake installs lib files get dumped to the driver bin directories too, we won't be keeping track of those
Display component works nicely now, no major crashes
Fixed a bug where cp would fail to copy the driver
Built the installer with the latest driver
@SimLeek
Copy link
Collaborator

SimLeek commented Sep 7, 2021

Looked at the code. Looks pretty good. Now I just gotta follow the build instructions and see if the binaries work.

@okawo80085
Copy link
Owner Author

Now that I look at the branch, I may have forgot to update a few readmes, mentioning adddriver in the build instructions is the worst one I think

Updated the Linux section regarding the HMD frame delivery issue
Added instructions on installing the development version of the driver in the pre build section
@okawo80085
Copy link
Owner Author

Fixed i think? can you check it again @SimLeek

Copy link
Owner Author

@okawo80085 okawo80085 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(mobile github is stupid and i cant delete comments)

Pulled last changes from upstream
@okawo80085
Copy link
Owner Author

So i finally got to my Linux patches, boiiiiiiiiiii they're dumb, it honestly feels like SteamVR behaves differently on Linux compared to Windows, so... we'll still have some bugs on Linux which are out of our control, due to them being a SteamVR issue, like multi driver interactions on Linux, our devices just randomly decide to not show up on Linux while on Windows they show up fine, with seemingly exactly the same driver...

Updated build commands for easy copy
Enabled -Werror and -O2 optimization
hobovr_components.h: Werror compliance
hobovr_device_base.h: Werror compliance, HobovrDevice class refactored and formatting
receiver_linux.h: Werror compliance
util.h: Werror compliance
Werror compliance in DebugDriverLog()
Refactored how CServerDriver_hobovr stores devices, switches to using tabs instead of spaces, and fixed line formatting
Changed default settings:
	* `"uduSettings"` - default device setup, can not be empty for now
	* `"Distortion*"` - default distortion parameters, off, by default assumed no distortion
	* `"ZoomWidth"`/`"ZoomWidth"` - default zoom parameters, none, by default assume no zoom
Fresh build of the Linux version of hobo_vr driver
Removed old unused or obsolete code and scripts
More Werror compliance, brought to you by VisualStudio :P
Latest Linux build
Built fresh versions of Linux deb installers
@okawo80085
Copy link
Owner Author

@SimLeek is there anything that doesn't look right to you?

Fixed the source path, no more crazy nested paths
@SimLeek
Copy link
Collaborator

SimLeek commented Nov 6, 2021

Looks good. 👍

@okawo80085
Copy link
Owner Author

Sweet

@okawo80085 okawo80085 merged commit 0bc417d into master Nov 6, 2021
@okawo80085 okawo80085 deleted the build_rework branch November 8, 2021 22:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants