Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
Timocop committed Jan 24, 2025
2 parents b160072 + 1b3d1c7 commit 52aed42
Show file tree
Hide file tree
Showing 51 changed files with 1,099 additions and 465 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/prepare-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ jobs:
- uses: actions/checkout@v2
with:
ref: ${{ needs.prepare_release.outputs.release_ref }}
submodules: true

- uses: actions-rs/toolchain@v1
with:
Expand Down Expand Up @@ -110,12 +111,13 @@ jobs:
asset_content_type: application/zip

build_linux_streamer:
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: [prepare_release]
steps:
- uses: actions/checkout@v2
with:
ref: ${{ needs.prepare_release.outputs.release_ref }}
submodules: true

- uses: actions-rs/toolchain@v1
with:
Expand Down Expand Up @@ -166,6 +168,7 @@ jobs:
- uses: actions/checkout@v2
with:
ref: ${{ needs.prepare_release.outputs.release_ref }}
submodules: true

- name: Build and install dependencies
env:
Expand Down Expand Up @@ -198,6 +201,7 @@ jobs:
- uses: actions/checkout@v2
with:
ref: ${{ needs.prepare_release.outputs.release_ref }}
submodules: true

- uses: actions-rs/toolchain@v1
with:
Expand Down
47 changes: 16 additions & 31 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

67 changes: 34 additions & 33 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
[workspace]
resolver = "2"
members = ["alvr/*"]

[workspace.package]
version = "21.0.0-dev01"
edition = "2021"
rust-version = "1.81"
authors = ["alvr-org"]
license = "MIT"

[workspace.dependencies]
alvr_adb = { path = "alvr/adb" }
alvr_audio = { path = "alvr/audio" }
alvr_client_core = { path = "alvr/client_core" }
alvr_common = { path = "alvr/common" }
alvr_events = { path = "alvr/events" }
alvr_filesystem = { path = "alvr/filesystem" }
alvr_gui_common = { path = "alvr/gui_common" }
alvr_packets = { path = "alvr/packets" }
alvr_server_core = { path = "alvr/server_core"}
alvr_server_io = { path = "alvr/server_io" }
alvr_session = { path = "alvr/session" }
alvr_sockets = { path = "alvr/sockets" }
alvr_system_info = { path = "alvr/system_info" }

[profile.release]
debug = "limited"
strip = false

[profile.distribution]
inherits = "release"
lto = true
[workspace]
resolver = "2"
members = ["alvr/*"]

[workspace.package]
version = "21.0.0-dev01"
edition = "2021"
rust-version = "1.81"
authors = ["alvr-org"]
license = "MIT"

[workspace.dependencies]
alvr_adb = { path = "alvr/adb" }
alvr_audio = { path = "alvr/audio" }
alvr_client_core = { path = "alvr/client_core" }
alvr_common = { path = "alvr/common" }
alvr_events = { path = "alvr/events" }
alvr_filesystem = { path = "alvr/filesystem" }
alvr_graphics = { path = "alvr/graphics" }
alvr_gui_common = { path = "alvr/gui_common" }
alvr_packets = { path = "alvr/packets" }
alvr_server_core = { path = "alvr/server_core"}
alvr_server_io = { path = "alvr/server_io" }
alvr_session = { path = "alvr/session" }
alvr_sockets = { path = "alvr/sockets" }
alvr_system_info = { path = "alvr/system_info" }

[profile.release]
debug = "limited"
strip = false

[profile.distribution]
inherits = "release"
lto = true
31 changes: 15 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,25 @@
Stream VR games from your PC to your headset via Wi-Fi.
This is a fork of [ALVR](https://github.com/polygraphene/ALVR).

### Direct download to the lastest version:
### Direct download to the latest version:
### [Windows Launcher](https://github.com/alvr-org/ALVR/releases/latest/download/alvr_launcher_windows.zip) | [Linux Launcher](https://github.com/alvr-org/ALVR/releases/latest/download/alvr_launcher_linux.tar.gz)

## Compatibility

| VR Headset | Support |
| :-------------------: | :------------------------------------------------------------------------------------------: |
| Quest 1/2/3/3S/Pro | :heavy_check_mark: ([store link](https://www.meta.com/experiences/7674846229245715)) |
| Pico Neo 3/4/4 Ultra | :heavy_check_mark: |
| Vive Focus 3/XR Elite | :heavy_check_mark: |
| YVR 1/2 | :heavy_check_mark: |
| Lynx R1 | :heavy_check_mark: |
| Apple Vision Pro | :heavy_check_mark: ([store link](https://apps.apple.com/app/alvr/id6479728026)) |
| PhoneVR (smartphone) | :heavy_check_mark: * (Check [PhoneVR](https://github.com/PhoneVR-Developers/PhoneVR) Client) |
| Android/Monado | :warning: * |
| GearVR | :construction: (maybe) |
| Oculus Go | :x: ** |

\* : Only works on some smartphones, not enough testing.
\** : Oculus Go support was dropped, the minimum supported OS is Android 8. Download the last compatible version [here](https://github.com/alvr-org/ALVR/releases/tag/v18.2.3).
| VR Headset | Support |
| :--------------------------: | :------------------------------------------------------------------------------------: |
| Apple Vision Pro | :heavy_check_mark: ([store link](https://apps.apple.com/app/alvr/id6479728026)) |
| Quest 1/2/3/3S/Pro | :heavy_check_mark: ([store link](https://www.meta.com/experiences/7674846229245715) *) |
| Pico Neo 3/4/4 Ultra | :heavy_check_mark: |
| Play For Dream YVR 1/2 | :heavy_check_mark: |
| Vive Focus 3/Vision/XR Elite | :heavy_check_mark: |
| Lynx R1 | :heavy_check_mark: |
| PhoneVR (smartphone) | :heavy_check_mark: ** ([repo](https://github.com/PhoneVR-Developers/PhoneVR)) |
| Android/Monado | :warning: ** |
| Oculus Go | :x: ([old repo](https://github.com/polygraphene/ALVR)) |

\* : ALVR for Quest 1 not available through the Meta store.
\** : Only works on some smartphones, not enough testing.

| PC OS | Support |
| :------------: | :---------------------------------------------------------------------------: |
Expand Down
4 changes: 4 additions & 0 deletions alvr/audio/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ static VIRTUAL_MICROPHONE_PAIRS: Lazy<HashMap<&str, &str>> = Lazy::new(|| {
("VoiceMeeter Input", "VoiceMeeter Output"),
("VoiceMeeter Aux Input", "VoiceMeeter Aux Output"),
("VoiceMeeter VAIO3 Input", "VoiceMeeter VAIO3 Output"),
("Virtual Cable 1", "Virtual Cable 2"),
]
.into_iter()
.collect()
Expand Down Expand Up @@ -148,6 +149,9 @@ impl AudioDevice {
MicrophoneDevicesConfig::VoiceMeeterVaio3 => {
microphone_pair_from_sink_name(&host, "VoiceMeeter VAIO3 Input")?
}
MicrophoneDevicesConfig::VAC => {
microphone_pair_from_sink_name(&host, "Virtual Cable 1")?
}
MicrophoneDevicesConfig::Custom { sink, source } => (
device_from_custom_config(&host, &sink)?,
device_from_custom_config(&host, &source)?,
Expand Down
20 changes: 2 additions & 18 deletions alvr/client_core/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,28 @@ crate-type = ["rlib", "staticlib", "cdylib"]

[features]
link-stdcpp-shared = []
use-cpp = []
default = ["link-stdcpp-shared", "use-cpp"]
default = ["link-stdcpp-shared"]

[dependencies]
alvr_audio.workspace = true
alvr_common.workspace = true
alvr_graphics.workspace = true
alvr_packets.workspace = true
alvr_session.workspace = true
alvr_sockets.workspace = true
alvr_system_info.workspace = true

app_dirs2 = "2"
bincode = "1"
glow = "0.13"
glyph_brush_layout = "0.2"
jni = "0.21"
khronos-egl = { version = "6", features = ["dynamic"] }
local-ip-address = "0.6"
mdns-sd = "0.11"
pollster = "0.3"
rand = "0.8"
serde = "1"
serde_json = "1"
wgpu = "0.20"
wgpu-core = { version = "0.21", features = ["gles"] }
whoami = "1"

[target.'cfg(target_os = "android")'.dependencies]
android_logger = "0.14"
ndk = { version = "0.9", features = ["api-level-26", "media"] }
ndk-context = "0.1"
ndk-sys = "0.6"
oboe = "0.6" # todo: remove once AudioThread shutdown crash is fixed

[target.'cfg(not(target_os = "android"))'.dependencies]
env_logger = "0.11"

[build-dependencies]
bindgen = "0.70"
cc = { version = "1", features = ["parallel"] }
walkdir = "2"
11 changes: 0 additions & 11 deletions alvr/client_core/resources/lobby_line.wgsl

This file was deleted.

11 changes: 0 additions & 11 deletions alvr/client_core/resources/staging_fragment.glsl

This file was deleted.

7 changes: 5 additions & 2 deletions alvr/client_core/src/c_api.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
#![expect(dead_code)]

use crate::{
graphics::{GraphicsContext, LobbyRenderer, LobbyViewParams, StreamRenderer, StreamViewParams},
storage,
video_decoder::{self, VideoDecoderConfig, VideoDecoderSource},
ClientCapabilities, ClientCoreContext, ClientCoreEvent,
Expand All @@ -15,6 +14,9 @@ use alvr_common::{
parking_lot::Mutex,
warn, DeviceMotion, Fov, OptLazy, Pose,
};
use alvr_graphics::{
GraphicsContext, LobbyRenderer, LobbyViewParams, StreamRenderer, StreamViewParams,
};
use alvr_packets::{ButtonEntry, ButtonValue, FaceData, ViewParams};
use alvr_session::{CodecType, FoveatedEncodingConfig, MediacodecPropType, MediacodecProperty};
use std::{
Expand Down Expand Up @@ -785,7 +787,7 @@ pub unsafe extern "C" fn alvr_start_stream_opengl(config: AlvrStreamConfig) {
GRAPHICS_CONTEXT.with_borrow(|c| c.as_ref().unwrap().clone()),
view_resolution,
swapchain_textures,
glow::RGBA8,
alvr_graphics::SDR_FORMAT_GL,
foveated_encoding,
true,
false, // TODO: limited range fix config
Expand Down Expand Up @@ -820,6 +822,7 @@ pub unsafe extern "C" fn alvr_render_lobby_opengl(
[(None, None), (None, None)],
None,
render_background,
false,
);
}
});
Expand Down
2 changes: 2 additions & 0 deletions alvr/client_core/src/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ pub struct ConnectionContext {
pub view_params: RwLock<[ViewParams; 2]>,
pub uses_multimodal_protocol: RelaxedAtomic,
pub velocities_multiplier: RwLock<f32>,
pub max_prediction: RwLock<Duration>,
}

fn set_hud_message(event_queue: &Mutex<VecDeque<ClientCoreEvent>>, message: &str) {
Expand Down Expand Up @@ -205,6 +206,7 @@ fn connection_pipeline(
let negotiated_config = stream_config.negotiated_config;

*ctx.velocities_multiplier.write() = settings.extra.velocities_multiplier;
*ctx.max_prediction.write() = Duration::from_millis(settings.headset.max_prediction_ms);

*ctx.statistics_manager.lock() = Some(StatisticsManager::new(
settings.connection.statistics_history_size,
Expand Down
Loading

0 comments on commit 52aed42

Please sign in to comment.