Compare commits
No commits in common. "rawhide" and "f41" have entirely different histories.
18 changed files with 1716 additions and 335 deletions
16
.gitignore
vendored
16
.gitignore
vendored
|
|
@ -14,19 +14,3 @@
|
|||
/monado-src-5c137fe28b232fe460f9b03defa7749adc32ee48.tar.bz2
|
||||
/WiVRn-25.9.tar.gz
|
||||
/monado-src-7a4018e2d89151e60e562fac79eba90ca7a328d8.tar.bz2
|
||||
/WiVRn-de32f6e24f1f457dcea78974b945e1cb3ac6dee8.tar.gz
|
||||
/monado-src-06e62fc7d9c5cbcbc43405bb86dfde3bf01ce043.tar.bz2
|
||||
/WiVRn-25.11.tar.gz
|
||||
/WiVRn-25.11.1.tar.gz
|
||||
/WiVRn-25.12.tar.gz
|
||||
/monado-src-20e0dacbdd2de863923790326beec76e848b056a.tar.bz2
|
||||
/WiVRn-26.2.tar.gz
|
||||
/monado-src-9dcc3e1de2f7449d9757f5db332c867b4d794fb3.tar.bz2
|
||||
/WiVRn-26.2.1.tar.gz
|
||||
/monado-src-723652b545a79609f9f04cb89fcbf807d9d6451a.tar.bz2
|
||||
/WiVRn-26.2.2.tar.gz
|
||||
/WiVRn-v26.2.3.tar.gz
|
||||
/WiVRn-v26.6.tar.gz
|
||||
/monado-src-1b526bb3a0ff326ecd05af4c2c541407f53c6d4b.tar.bz2
|
||||
/WiVRn-v26.6.1.tar.gz
|
||||
/WiVRn-v26.6.2.tar.gz
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
From de3b592fc26d7b26b4850fcc78d7e6b21147f76b Mon Sep 17 00:00:00 2001
|
||||
From 5a4505efc60c9252176b73775278b6f5b775fe8e Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Tue, 22 Oct 2024 15:23:19 +0200
|
||||
Subject: [PATCH 1/8] c/multi: early wake of compositor
|
||||
|
|
@ -10,7 +10,7 @@ Subject: [PATCH 1/8] c/multi: early wake of compositor
|
|||
3 files changed, 41 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/compositor/multi/comp_multi_compositor.c b/src/xrt/compositor/multi/comp_multi_compositor.c
|
||||
index 33675d43f..71c5ebf9e 100644
|
||||
index 94cea110e..88347a092 100644
|
||||
--- a/src/xrt/compositor/multi/comp_multi_compositor.c
|
||||
+++ b/src/xrt/compositor/multi/comp_multi_compositor.c
|
||||
@@ -236,7 +236,21 @@ wait_for_scheduled_free(struct multi_compositor *mc)
|
||||
|
|
@ -36,10 +36,10 @@ index 33675d43f..71c5ebf9e 100644
|
|||
|
||||
static void *
|
||||
diff --git a/src/xrt/compositor/multi/comp_multi_private.h b/src/xrt/compositor/multi/comp_multi_private.h
|
||||
index 6c7ec05f8..588878e38 100644
|
||||
index 3351defa4..e8f0c8295 100644
|
||||
--- a/src/xrt/compositor/multi/comp_multi_private.h
|
||||
+++ b/src/xrt/compositor/multi/comp_multi_private.h
|
||||
@@ -365,6 +365,10 @@ struct multi_system_compositor
|
||||
@@ -359,6 +359,10 @@ struct multi_system_compositor
|
||||
*/
|
||||
struct os_mutex list_and_timing_lock;
|
||||
|
||||
|
|
@ -51,19 +51,19 @@ index 6c7ec05f8..588878e38 100644
|
|||
{
|
||||
int64_t predicted_display_time_ns;
|
||||
diff --git a/src/xrt/compositor/multi/comp_multi_system.c b/src/xrt/compositor/multi/comp_multi_system.c
|
||||
index 5a4f35b81..cbda39c24 100644
|
||||
index be763d1c1..22c801f65 100644
|
||||
--- a/src/xrt/compositor/multi/comp_multi_system.c
|
||||
+++ b/src/xrt/compositor/multi/comp_multi_system.c
|
||||
@@ -14,6 +14,8 @@
|
||||
#include "xrt/xrt_defines.h"
|
||||
#include "xrt/xrt_session.h"
|
||||
@@ -23,6 +23,8 @@
|
||||
#include "util/u_trace_marker.h"
|
||||
#include "util/u_distortion_mesh.h"
|
||||
|
||||
+#include "math/m_api.h"
|
||||
+
|
||||
#include "os/os_time.h"
|
||||
#include "os/os_threading.h"
|
||||
|
||||
@@ -426,17 +428,24 @@ broadcast_timings_to_pacers(struct multi_system_compositor *msc,
|
||||
#ifdef XRT_OS_LINUX
|
||||
#include "util/u_linux.h"
|
||||
#endif
|
||||
@@ -392,17 +394,24 @@ broadcast_timings_to_pacers(struct multi_system_compositor *msc,
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -93,7 +93,7 @@ index 5a4f35b81..cbda39c24 100644
|
|||
}
|
||||
|
||||
static void
|
||||
@@ -562,10 +571,13 @@ multi_main_loop(struct multi_system_compositor *msc)
|
||||
@@ -527,10 +536,13 @@ multi_main_loop(struct multi_system_compositor *msc)
|
||||
broadcast_timings_to_clients(msc, predicted_display_time_ns);
|
||||
|
||||
// Now we can wait.
|
||||
|
|
@ -109,7 +109,7 @@ index 5a4f35b81..cbda39c24 100644
|
|||
|
||||
// Now we know the diff, broadcast to pacers.
|
||||
broadcast_timings_to_pacers(msc, predicted_display_time_ns, predicted_display_period_ns, diff_ns);
|
||||
@@ -785,6 +797,8 @@ system_compositor_destroy(struct xrt_system_compositor *xsc)
|
||||
@@ -707,6 +719,8 @@ system_compositor_destroy(struct xrt_system_compositor *xsc)
|
||||
xrt_comp_native_destroy(&msc->xcn);
|
||||
|
||||
os_mutex_destroy(&msc->list_and_timing_lock);
|
||||
|
|
@ -118,8 +118,8 @@ index 5a4f35b81..cbda39c24 100644
|
|||
|
||||
free(msc);
|
||||
}
|
||||
@@ -843,6 +857,8 @@ comp_multi_create_system_compositor(struct xrt_compositor_native *xcn,
|
||||
msc->get_view_config_callback = get_view_config_callback;
|
||||
@@ -761,6 +775,8 @@ comp_multi_create_system_compositor(struct xrt_compositor_native *xcn,
|
||||
msc->sessions.state = do_warm_start ? MULTI_SYSTEM_STATE_INIT_WARM_START : MULTI_SYSTEM_STATE_STOPPED;
|
||||
|
||||
os_mutex_init(&msc->list_and_timing_lock);
|
||||
+ os_mutex_init(&msc->wake_mutex);
|
||||
|
|
@ -128,5 +128,5 @@ index 5a4f35b81..cbda39c24 100644
|
|||
//! @todo Make the clients not go from IDLE to READY before we have completed a first frame.
|
||||
// Make sure there is at least some sort of valid frame data here.
|
||||
--
|
||||
2.54.0
|
||||
2.51.0
|
||||
|
||||
|
|
|
|||
25
0002-ipc-server-Always-listen-to-stdin.patch
Normal file
25
0002-ipc-server-Always-listen-to-stdin.patch
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
From e118393925294a3b57cbf149fdc28685b27aec94 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Tue, 2 Apr 2024 17:14:42 +0200
|
||||
Subject: [PATCH 2/8] ipc/server: Always listen to stdin
|
||||
|
||||
---
|
||||
src/xrt/ipc/server/ipc_server_mainloop_linux.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/xrt/ipc/server/ipc_server_mainloop_linux.c b/src/xrt/ipc/server/ipc_server_mainloop_linux.c
|
||||
index d364fbed3..ad6b473b7 100644
|
||||
--- a/src/xrt/ipc/server/ipc_server_mainloop_linux.c
|
||||
+++ b/src/xrt/ipc/server/ipc_server_mainloop_linux.c
|
||||
@@ -186,7 +186,7 @@ init_epoll(struct ipc_server_mainloop *ml)
|
||||
|
||||
struct epoll_event ev = {0};
|
||||
|
||||
- if (!ml->launched_by_socket && !debug_get_bool_option_skip_stdin()) {
|
||||
+ if (!debug_get_bool_option_skip_stdin()) {
|
||||
// Can't do this when launched by systemd socket activation by
|
||||
// default.
|
||||
// This polls stdin.
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,26 +1,26 @@
|
|||
From 22d9bf87e9dd6a0d5970258a6b6cd6ca82c3bb26 Mon Sep 17 00:00:00 2001
|
||||
From d4b4c209e9106edf5e6b1c3efbcac2b88364518b Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Tue, 8 Oct 2024 22:13:15 +0200
|
||||
Subject: [PATCH 2/8] Use extern socket fd
|
||||
Subject: [PATCH 3/8] Use extern socket fd
|
||||
|
||||
---
|
||||
src/xrt/ipc/server/ipc_server_mainloop_linux.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/src/xrt/ipc/server/ipc_server_mainloop_linux.c b/src/xrt/ipc/server/ipc_server_mainloop_linux.c
|
||||
index a0bef3dde..453dd38ca 100644
|
||||
index ad6b473b7..ea6fad65b 100644
|
||||
--- a/src/xrt/ipc/server/ipc_server_mainloop_linux.c
|
||||
+++ b/src/xrt/ipc/server/ipc_server_mainloop_linux.c
|
||||
@@ -50,6 +50,8 @@
|
||||
#endif
|
||||
|
||||
@@ -55,6 +55,8 @@
|
||||
*/
|
||||
DEBUG_GET_ONCE_BOOL_OPTION(skip_stdin, "XRT_NO_STDIN", false)
|
||||
|
||||
+extern int listen_socket;
|
||||
+
|
||||
/*
|
||||
*
|
||||
* Static functions.
|
||||
@@ -58,6 +60,12 @@
|
||||
@@ -63,6 +65,12 @@ DEBUG_GET_ONCE_BOOL_OPTION(skip_stdin, "XRT_NO_STDIN", false)
|
||||
static int
|
||||
get_systemd_socket(struct ipc_server_mainloop *ml, int *out_fd)
|
||||
{
|
||||
|
|
@ -34,5 +34,5 @@ index a0bef3dde..453dd38ca 100644
|
|||
// We may have been launched with socket activation
|
||||
int num_fds = sd_listen_fds(0);
|
||||
--
|
||||
2.54.0
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,17 +1,17 @@
|
|||
From 3c7450d800b0e3f35440f41d3bfcf5b5abe6dfe8 Mon Sep 17 00:00:00 2001
|
||||
From a0eafb7370e319386bdd790059e2f13147706a9f Mon Sep 17 00:00:00 2001
|
||||
From: galister <85970-galister@users.noreply.gitlab.freedesktop.org>
|
||||
Date: Sat, 23 Nov 2024 02:42:12 +0900
|
||||
Subject: [PATCH 3/8] change environment blend mode selection logic
|
||||
Subject: [PATCH 4/8] change environment blend mode selection logic
|
||||
|
||||
---
|
||||
src/xrt/compositor/multi/comp_multi_system.c | 26 +++++++++++++-------
|
||||
1 file changed, 17 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/compositor/multi/comp_multi_system.c b/src/xrt/compositor/multi/comp_multi_system.c
|
||||
index cbda39c24..c0c6c9f60 100644
|
||||
index 22c801f65..1155bc67e 100644
|
||||
--- a/src/xrt/compositor/multi/comp_multi_system.c
|
||||
+++ b/src/xrt/compositor/multi/comp_multi_system.c
|
||||
@@ -231,23 +231,31 @@ find_active_blend_mode(struct multi_compositor **overlay_sorted_clients, size_t
|
||||
@@ -232,23 +232,31 @@ find_active_blend_mode(struct multi_compositor **overlay_sorted_clients, size_t
|
||||
if (overlay_sorted_clients == NULL)
|
||||
return XRT_BLEND_MODE_OPAQUE;
|
||||
|
||||
|
|
@ -53,5 +53,5 @@ index cbda39c24..c0c6c9f60 100644
|
|||
}
|
||||
|
||||
--
|
||||
2.54.0
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
From b26876c29205f2d2fb07fbdbe009d5635eb32bfd Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Sat, 15 Mar 2025 22:19:48 +0100
|
||||
Subject: [PATCH 4/8] st/oxr: forward 0 refresh rate
|
||||
|
||||
---
|
||||
src/xrt/compositor/main/comp_compositor.c | 2 +-
|
||||
src/xrt/state_trackers/oxr/oxr_api_session.c | 6 +-----
|
||||
2 files changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/compositor/main/comp_compositor.c b/src/xrt/compositor/main/comp_compositor.c
|
||||
index b44271622..a1e112e89 100644
|
||||
--- a/src/xrt/compositor/main/comp_compositor.c
|
||||
+++ b/src/xrt/compositor/main/comp_compositor.c
|
||||
@@ -391,7 +391,7 @@ compositor_request_display_refresh_rate(struct xrt_compositor *xc, float display
|
||||
if (c->target && c->target->request_refresh_rate) {
|
||||
xrt_result_t result = comp_target_request_refresh_rate(c->target, display_refresh_rate_hz);
|
||||
// Assume refresh rate change is immediate
|
||||
- if (result == XRT_SUCCESS)
|
||||
+ if (result == XRT_SUCCESS && display_refresh_rate_hz > 0)
|
||||
c->frame_interval_ns = U_TIME_1S_IN_NS / display_refresh_rate_hz;
|
||||
return result;
|
||||
}
|
||||
diff --git a/src/xrt/state_trackers/oxr/oxr_api_session.c b/src/xrt/state_trackers/oxr/oxr_api_session.c
|
||||
index 09297f885..9f3a7ebc2 100644
|
||||
--- a/src/xrt/state_trackers/oxr/oxr_api_session.c
|
||||
+++ b/src/xrt/state_trackers/oxr/oxr_api_session.c
|
||||
@@ -455,15 +455,11 @@ oxr_xrRequestDisplayRefreshRateFB(XrSession session, float displayRefreshRate)
|
||||
OXR_VERIFY_SESSION_AND_INIT_LOG(&log, session, sess, "xrRequestDisplayRefreshRateFB");
|
||||
OXR_VERIFY_SESSION_NOT_LOST(&log, sess);
|
||||
|
||||
- if (displayRefreshRate == 0.0f) {
|
||||
- return XR_SUCCESS;
|
||||
- }
|
||||
-
|
||||
/*
|
||||
* For the requested display refresh rate, truncating to two decimal
|
||||
* places and checking if it's in the supported refresh rates.
|
||||
*/
|
||||
- bool found = false;
|
||||
+ bool found = displayRefreshRate == 0.0f;
|
||||
for (int i = 0; i < (int)sess->sys->xsysc->info.refresh_rate_count; ++i) {
|
||||
if ((int)(displayRefreshRate * 100.0f) == (int)(sess->sys->xsysc->info.refresh_rates_hz[i] * 100.0f)) {
|
||||
found = true;
|
||||
--
|
||||
2.54.0
|
||||
|
||||
82
0005-c-main-allow-custom-pacing-app-factory.patch
Normal file
82
0005-c-main-allow-custom-pacing-app-factory.patch
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
From 406114aa32a71e04b43b44b0aec04472f9fa82c3 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Thu, 27 Feb 2025 22:45:36 +0100
|
||||
Subject: [PATCH 5/8] c/main: allow custom pacing app factory
|
||||
|
||||
---
|
||||
src/xrt/compositor/main/comp_compositor.c | 10 ++++++----
|
||||
src/xrt/compositor/main/comp_main_interface.h | 4 ++++
|
||||
src/xrt/targets/common/target_instance.c | 2 +-
|
||||
3 files changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/compositor/main/comp_compositor.c b/src/xrt/compositor/main/comp_compositor.c
|
||||
index 805683d70..8220808ff 100644
|
||||
--- a/src/xrt/compositor/main/comp_compositor.c
|
||||
+++ b/src/xrt/compositor/main/comp_compositor.c
|
||||
@@ -987,6 +987,7 @@ compositor_init_renderer(struct comp_compositor *c)
|
||||
xrt_result_t
|
||||
comp_main_create_system_compositor(struct xrt_device *xdev,
|
||||
const struct comp_target_factory *ctf,
|
||||
+ struct u_pacing_app_factory *upaf,
|
||||
struct xrt_system_compositor **out_xsysc)
|
||||
{
|
||||
COMP_TRACE_MARKER();
|
||||
@@ -1187,10 +1188,11 @@ comp_main_create_system_compositor(struct xrt_device *xdev,
|
||||
}
|
||||
|
||||
// Standard app pacer.
|
||||
- struct u_pacing_app_factory *upaf = NULL;
|
||||
- xrt_result_t xret = u_pa_factory_create(&upaf);
|
||||
- assert(xret == XRT_SUCCESS && upaf != NULL);
|
||||
- (void)xret;
|
||||
+ if (upaf == NULL) {
|
||||
+ xrt_result_t xret = u_pa_factory_create(&upaf);
|
||||
+ assert(xret == XRT_SUCCESS && upaf != NULL);
|
||||
+ (void)xret;
|
||||
+ }
|
||||
|
||||
return comp_multi_create_system_compositor(&c->base.base, upaf, sys_info, !c->deferred_surface, out_xsysc);
|
||||
}
|
||||
diff --git a/src/xrt/compositor/main/comp_main_interface.h b/src/xrt/compositor/main/comp_main_interface.h
|
||||
index 0f0678358..f60568b43 100644
|
||||
--- a/src/xrt/compositor/main/comp_main_interface.h
|
||||
+++ b/src/xrt/compositor/main/comp_main_interface.h
|
||||
@@ -15,6 +15,7 @@
|
||||
#include "xrt/xrt_compositor.h"
|
||||
|
||||
struct comp_target_factory;
|
||||
+struct u_pacing_app_factory;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
@@ -31,11 +32,14 @@ extern "C" {
|
||||
* @param xdev The head device
|
||||
* @param ctf A compositor target factory to force the output device, must remain valid for the lifetime of the
|
||||
* compositor. If NULL, factory is automatically selected
|
||||
+ * @param upaf A pacing app factory to customize the application pacer, compositor takes ownership.
|
||||
+ * If NULL, a default factory is used
|
||||
* @param out_xsysc The output compositor
|
||||
*/
|
||||
xrt_result_t
|
||||
comp_main_create_system_compositor(struct xrt_device *xdev,
|
||||
const struct comp_target_factory *ctf,
|
||||
+ struct u_pacing_app_factory *upaf,
|
||||
struct xrt_system_compositor **out_xsysc);
|
||||
|
||||
|
||||
diff --git a/src/xrt/targets/common/target_instance.c b/src/xrt/targets/common/target_instance.c
|
||||
index 617561c37..e10ba8358 100644
|
||||
--- a/src/xrt/targets/common/target_instance.c
|
||||
+++ b/src/xrt/targets/common/target_instance.c
|
||||
@@ -109,7 +109,7 @@ t_instance_create_system(struct xrt_instance *xinst,
|
||||
|
||||
#ifdef XRT_MODULE_COMPOSITOR_MAIN
|
||||
if (xret == XRT_SUCCESS && xsysc == NULL) {
|
||||
- xret = comp_main_create_system_compositor(head, NULL, &xsysc);
|
||||
+ xret = comp_main_create_system_compositor(head, NULL, NULL, &xsysc);
|
||||
}
|
||||
#else
|
||||
if (!use_null) {
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 7230746571d1256d32557fd99528ac90a1d75957 Mon Sep 17 00:00:00 2001
|
||||
From: no name <git-am@invalid>
|
||||
Date: Sun, 28 Sep 2025 11:33:10 +0200
|
||||
Subject: [PATCH 5/8] d/steamvr_lh: prevent crash on vive pro2/WiVRn
|
||||
|
||||
---
|
||||
src/xrt/drivers/steamvr_lh/steamvr_lh.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp b/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp
|
||||
index 347d22068..d34d3331e 100644
|
||||
--- a/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp
|
||||
+++ b/src/xrt/drivers/steamvr_lh/steamvr_lh.cpp
|
||||
@@ -985,7 +985,7 @@ steamvr_lh_create_devices(struct xrt_prober *xp, struct xrt_system_devices **out
|
||||
|
||||
// Include the HMD
|
||||
if (svrs->ctx->hmd) {
|
||||
- if (svrs->ctx->hmd->variant == VIVE_VARIANT_PRO2 && !svrs->ctx->hmd->init_vive_pro_2(xp)) {
|
||||
+ if (xp && svrs->ctx->hmd->variant == VIVE_VARIANT_PRO2 && !svrs->ctx->hmd->init_vive_pro_2(xp)) {
|
||||
U_LOG_IFL_W(level, "Found Vive Pro 2, but failed to initialize.");
|
||||
}
|
||||
|
||||
--
|
||||
2.54.0
|
||||
|
||||
33
0006-st-oxr-forward-0-refresh-rate.patch
Normal file
33
0006-st-oxr-forward-0-refresh-rate.patch
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
From aa73e7d05747374760b22333495cde8c3d9d3f10 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Sat, 15 Mar 2025 22:19:48 +0100
|
||||
Subject: [PATCH 6/8] st/oxr: forward 0 refresh rate
|
||||
|
||||
---
|
||||
src/xrt/state_trackers/oxr/oxr_api_session.c | 6 +-----
|
||||
1 file changed, 1 insertion(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/state_trackers/oxr/oxr_api_session.c b/src/xrt/state_trackers/oxr/oxr_api_session.c
|
||||
index 9c5889f12..c4cdaf8c3 100644
|
||||
--- a/src/xrt/state_trackers/oxr/oxr_api_session.c
|
||||
+++ b/src/xrt/state_trackers/oxr/oxr_api_session.c
|
||||
@@ -717,15 +717,11 @@ oxr_xrRequestDisplayRefreshRateFB(XrSession session, float displayRefreshRate)
|
||||
OXR_VERIFY_SESSION_AND_INIT_LOG(&log, session, sess, "xrRequestDisplayRefreshRateFB");
|
||||
OXR_VERIFY_SESSION_NOT_LOST(&log, sess);
|
||||
|
||||
- if (displayRefreshRate == 0.0f) {
|
||||
- return XR_SUCCESS;
|
||||
- }
|
||||
-
|
||||
/*
|
||||
* For the requested display refresh rate, truncating to two decimal
|
||||
* places and checking if it's in the supported refresh rates.
|
||||
*/
|
||||
- bool found = false;
|
||||
+ bool found = displayRefreshRate == 0.0f;
|
||||
for (int i = 0; i < (int)sess->sys->xsysc->info.refresh_rate_count; ++i) {
|
||||
if ((int)(displayRefreshRate * 100.0f) == (int)(sess->sys->xsysc->info.refresh_rates_hz[i] * 100.0f)) {
|
||||
found = true;
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
From f400f0e63259bcadd9a7955ae0275caa5aea3ded Mon Sep 17 00:00:00 2001
|
||||
From: Sapphire <imsapphire0@gmail.com>
|
||||
Date: Fri, 7 Nov 2025 20:41:16 -0600
|
||||
Subject: [PATCH 6/8] st/oxr: push XrEventDataInteractionProfileChanged when
|
||||
profile changes to NULL
|
||||
|
||||
---
|
||||
src/xrt/state_trackers/oxr/actions/oxr_input.c | 3 ---
|
||||
1 file changed, 3 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/state_trackers/oxr/actions/oxr_input.c b/src/xrt/state_trackers/oxr/actions/oxr_input.c
|
||||
index 2bd3ea009..93659ba35 100644
|
||||
--- a/src/xrt/state_trackers/oxr/actions/oxr_input.c
|
||||
+++ b/src/xrt/state_trackers/oxr/actions/oxr_input.c
|
||||
@@ -1932,9 +1932,6 @@ session_update_action_bindings(struct oxr_logger *log,
|
||||
#define POPULATE_PROFILE(X) \
|
||||
do { \
|
||||
XrPath path = profiles.X != NULL ? profiles.X->path : XR_NULL_PATH; \
|
||||
- if (path == XR_NULL_PATH) { \
|
||||
- break; /* Only update on "active" interaction profiles per sub-action path. */ \
|
||||
- } \
|
||||
if (action_context->X != path) { \
|
||||
action_context->X = path; \
|
||||
interaction_profile_changed = true; \
|
||||
--
|
||||
2.54.0
|
||||
|
||||
1292
0007-Replace-distortion-with-foveation.patch
Normal file
1292
0007-Replace-distortion-with-foveation.patch
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,33 +0,0 @@
|
|||
From 0832cc9a2ccd0f67b3bd3a11ec1b1d1398dfebda Mon Sep 17 00:00:00 2001
|
||||
From: no name <git-am@invalid>
|
||||
Date: Sun, 25 Jan 2026 10:09:10 +0100
|
||||
Subject: [PATCH 7/8] don't verify GL stuff
|
||||
|
||||
---
|
||||
src/xrt/state_trackers/oxr/oxr_verify.c | 10 ----------
|
||||
1 file changed, 10 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/state_trackers/oxr/oxr_verify.c b/src/xrt/state_trackers/oxr/oxr_verify.c
|
||||
index 8f35222cf..1418a8231 100644
|
||||
--- a/src/xrt/state_trackers/oxr/oxr_verify.c
|
||||
+++ b/src/xrt/state_trackers/oxr/oxr_verify.c
|
||||
@@ -610,16 +610,6 @@ oxr_verify_XrGraphicsBindingOpenGLXlibKHR(struct oxr_logger *log, const XrGraphi
|
||||
"XrGraphicsBindingOpenGLXlibKHR::glxDrawable is NULL");
|
||||
}
|
||||
|
||||
- if (next->glxFBConfig == NULL) {
|
||||
- return oxr_error(log, XR_ERROR_GRAPHICS_DEVICE_INVALID,
|
||||
- "XrGraphicsBindingOpenGLXlibKHR::glxFBConfig is NULL");
|
||||
- }
|
||||
-
|
||||
- if (next->visualid == 0) {
|
||||
- return oxr_error(log, XR_ERROR_GRAPHICS_DEVICE_INVALID,
|
||||
- "XrGraphicsBindingOpenGLXlibKHR::visualid is 0");
|
||||
- }
|
||||
-
|
||||
return XR_SUCCESS;
|
||||
}
|
||||
|
||||
--
|
||||
2.54.0
|
||||
|
||||
46
0008-Limit-foveation-samples-per-pixel.patch
Normal file
46
0008-Limit-foveation-samples-per-pixel.patch
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
From 4de55a9bc2ab7d3931d38b6697268af5421c0328 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Sun, 31 Aug 2025 17:05:49 +0200
|
||||
Subject: [PATCH 8/8] Limit foveation samples per pixel
|
||||
|
||||
---
|
||||
src/xrt/compositor/shaders/distortion.comp | 12 +++++++++---
|
||||
1 file changed, 9 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/compositor/shaders/distortion.comp b/src/xrt/compositor/shaders/distortion.comp
|
||||
index cd1828ac9..41de849e6 100644
|
||||
--- a/src/xrt/compositor/shaders/distortion.comp
|
||||
+++ b/src/xrt/compositor/shaders/distortion.comp
|
||||
@@ -12,6 +12,7 @@
|
||||
layout(local_size_x = 8, local_size_y = 8, local_size_z = 1) in;
|
||||
|
||||
#define MAX_DIM 4097
|
||||
+#define MAX_SAMPLES 4
|
||||
|
||||
layout(set = 0, binding = 0) uniform sampler2D source[2];
|
||||
layout(set = 0, binding = 1, std430) buffer restrict Foveation
|
||||
@@ -67,13 +68,18 @@ void main()
|
||||
if (xmin == xmax)
|
||||
return;
|
||||
|
||||
+ uint xstep = (xmax - xmin + MAX_SAMPLES - 1) / MAX_SAMPLES;
|
||||
+ uint ystep = (ymax - ymin + MAX_SAMPLES - 1) / MAX_SAMPLES;
|
||||
+
|
||||
vec4 colour = vec4(0);
|
||||
- for (uint y = ymin ; y < ymax; y += 1) {
|
||||
- for (uint x = xmin ; x < xmax; x += 1) {
|
||||
+ uint count = 0;
|
||||
+ for (uint y = ymin ; y < ymax; y += ystep) {
|
||||
+ for (uint x = xmin ; x < xmax; x += xstep) {
|
||||
colour += texelFetch(source[iz], ivec2(x, y), 0);
|
||||
+ ++count;
|
||||
}
|
||||
}
|
||||
- colour /= (xmax - xmin) * (ymax - ymin);
|
||||
+ colour /= count;
|
||||
colour.xyz = rgb_to_ycbcr(from_linear_to_srgb(colour.rgb));
|
||||
|
||||
imageStore(luma, ivec3(offset.x + ix, offset.y + iy, 0), vec4(colour.x));
|
||||
--
|
||||
2.51.0
|
||||
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From d79de5d82def9641484b8d88212d3c2e97e38734 Mon Sep 17 00:00:00 2001
|
||||
From: no name <git-am@invalid>
|
||||
Date: Fri, 20 Mar 2026 16:51:18 +0100
|
||||
Subject: [PATCH 8/8] configure u_git_tag in WiVRn
|
||||
|
||||
---
|
||||
src/xrt/auxiliary/util/CMakeLists.txt | 7 +------
|
||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/src/xrt/auxiliary/util/CMakeLists.txt b/src/xrt/auxiliary/util/CMakeLists.txt
|
||||
index 79646b181..21adcd446 100644
|
||||
--- a/src/xrt/auxiliary/util/CMakeLists.txt
|
||||
+++ b/src/xrt/auxiliary/util/CMakeLists.txt
|
||||
@@ -10,11 +10,6 @@
|
||||
# by applications like the OpenXR runtime library.
|
||||
#
|
||||
|
||||
-configure_file(
|
||||
- "${CMAKE_CURRENT_SOURCE_DIR}/u_git_tag.c.in" "${CMAKE_CURRENT_BINARY_DIR}/u_git_tag.c"
|
||||
- @ONLY
|
||||
- )
|
||||
-
|
||||
add_library(
|
||||
aux_util STATIC
|
||||
u_autoexpgain.c
|
||||
@@ -120,7 +115,7 @@ add_library(
|
||||
u_worker.cpp
|
||||
u_worker.h
|
||||
u_worker.hpp
|
||||
- "${CMAKE_CURRENT_BINARY_DIR}/u_git_tag.c"
|
||||
+ "${U_GIT_TAG_CPP}"
|
||||
)
|
||||
target_link_libraries(
|
||||
aux_util
|
||||
--
|
||||
2.54.0
|
||||
|
||||
122
66ca73981d0c6c079b34566fa53a7a415c403611.patch
Normal file
122
66ca73981d0c6c079b34566fa53a7a415c403611.patch
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
From 66ca73981d0c6c079b34566fa53a7a415c403611 Mon Sep 17 00:00:00 2001
|
||||
From: Patrick Nicolas <patricknicolas@laposte.net>
|
||||
Date: Wed, 24 Sep 2025 07:38:35 +0200
|
||||
Subject: [PATCH] Fix tagged version download
|
||||
|
||||
---
|
||||
cmake/GitVersion.cmake | 1 -
|
||||
common/CMakeLists.txt | 1 -
|
||||
common/version.cpp.in | 11 +++++++++++
|
||||
common/version.h | 2 ++
|
||||
dashboard/apk_installer.cpp | 4 +---
|
||||
server/main.cpp | 6 +++---
|
||||
6 files changed, 17 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake
|
||||
index 5732ce396..431a75207 100644
|
||||
--- a/cmake/GitVersion.cmake
|
||||
+++ b/cmake/GitVersion.cmake
|
||||
@@ -13,7 +13,6 @@ execute_process(
|
||||
|
||||
if (GIT_DESC)
|
||||
string(STRIP ${GIT_DESC} GIT_DESC)
|
||||
- string(REGEX REPLACE "^v([0-9])" "\\1" GIT_DESC ${GIT_DESC})
|
||||
message(STATUS "Setting version to ${GIT_DESC} from git")
|
||||
else()
|
||||
set(GIT_DESC v${CMAKE_PROJECT_VERSION})
|
||||
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
|
||||
index fa2db43c5..96a2c7b7e 100644
|
||||
--- a/common/CMakeLists.txt
|
||||
+++ b/common/CMakeLists.txt
|
||||
@@ -7,7 +7,6 @@ else()
|
||||
endif()
|
||||
|
||||
if (GIT_DESC)
|
||||
- string(REGEX REPLACE "^v([0-9])" "\\1" GIT_DESC ${GIT_DESC})
|
||||
configure_file(version.cpp.in version.cpp)
|
||||
else ()
|
||||
add_custom_target(wivrn-version ALL
|
||||
diff --git a/common/version.cpp.in b/common/version.cpp.in
|
||||
index 9cd7a7090..06b78254d 100644
|
||||
--- a/common/version.cpp.in
|
||||
+++ b/common/version.cpp.in
|
||||
@@ -17,6 +17,9 @@
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
+#include <cctype>
|
||||
+#include <iterator>
|
||||
+
|
||||
namespace wivrn
|
||||
{
|
||||
extern const char git_version[];
|
||||
@@ -24,4 +27,12 @@ namespace wivrn
|
||||
|
||||
extern const char git_commit[];
|
||||
const char git_commit[] = "@GIT_COMMIT@";
|
||||
+
|
||||
+const char* display_version()
|
||||
+{
|
||||
+ if (std::size(git_version) > 2 and git_version[0] == 'v' and isdigit(git_version[1]))
|
||||
+ return git_version + 1;
|
||||
+ else
|
||||
+ return git_version;
|
||||
+}
|
||||
}
|
||||
diff --git a/common/version.h b/common/version.h
|
||||
index 4e33d8eae..77c60887c 100644
|
||||
--- a/common/version.h
|
||||
+++ b/common/version.h
|
||||
@@ -4,4 +4,6 @@ namespace wivrn
|
||||
{
|
||||
extern const char git_version[];
|
||||
extern const char git_commit[];
|
||||
+
|
||||
+const char * display_version();
|
||||
} // namespace wivrn
|
||||
diff --git a/dashboard/apk_installer.cpp b/dashboard/apk_installer.cpp
|
||||
index df2f15686..288574d99 100644
|
||||
--- a/dashboard/apk_installer.cpp
|
||||
+++ b/dashboard/apk_installer.cpp
|
||||
@@ -42,9 +42,7 @@ bool apk_installer::isTagged() const
|
||||
|
||||
QString apk_installer::currentVersion() const
|
||||
{
|
||||
- if (wivrn::git_version[0] == 'v')
|
||||
- return &wivrn::git_version[1];
|
||||
- return wivrn::git_version;
|
||||
+ return wivrn::display_version();
|
||||
}
|
||||
|
||||
QCoro::Task<> apk_installer::doRefreshLatestVersion()
|
||||
diff --git a/server/main.cpp b/server/main.cpp
|
||||
index fd5e62293..9867dacc7 100644
|
||||
--- a/server/main.cpp
|
||||
+++ b/server/main.cpp
|
||||
@@ -354,7 +354,7 @@ void start_publishing()
|
||||
sprintf(protocol_string, "%016" PRIx64, wivrn::protocol_version);
|
||||
std::map<std::string, std::string> TXT = {
|
||||
{"protocol", protocol_string},
|
||||
- {"version", wivrn::git_version},
|
||||
+ {"version", wivrn::display_version()},
|
||||
{"cookie", server_cookie()},
|
||||
};
|
||||
publisher.emplace(poll_api, hostname(), "_wivrn._tcp", wivrn::default_port, TXT);
|
||||
@@ -889,7 +889,7 @@ auto create_dbus_connection()
|
||||
|
||||
int inner_main(int argc, char * argv[], bool show_instructions)
|
||||
{
|
||||
- std::cerr << "WiVRn " << wivrn::git_version << " starting" << std::endl;
|
||||
+ std::cerr << "WiVRn " << wivrn::display_version() << " starting" << std::endl;
|
||||
if (show_instructions)
|
||||
{
|
||||
if (auto command = steam_command(); not command.empty())
|
||||
@@ -998,7 +998,7 @@ int main(int argc, char * argv[])
|
||||
|
||||
if (*version_flag)
|
||||
{
|
||||
- std::cout << "WiVRn version " << wivrn::git_version << std::endl;
|
||||
+ std::cout << "WiVRn version " << wivrn::display_version() << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
CECILL-C
|
||||
_deps/monado-src/src/external/imgui/imgui/imconfig.h
|
||||
|
||||
CC0-1.0 AND Apache-2.0
|
||||
_deps/monado-src/src/external/glad/*
|
||||
|
||||
Unlicense
|
||||
_deps/monado-src/src/external/imgui/imgui/backends/imgui_impl_opengl3_loader.h
|
||||
|
||||
Apache-2.0
|
||||
_deps/monado-src/gradle*
|
||||
_deps/monado-src/src/external/{flexkalman,glad,mermaid,nvpro_pyramid,openxr_includes}/*
|
||||
_deps/monado-src/src/xrt/auxiliary/math/m_quatexpmap.cpp
|
||||
gradle*
|
||||
resources/values/ic_wivrn_launcher_background.xml
|
||||
|
||||
Apache-2.0 OR MIT
|
||||
_deps/monado-src/doc/doxygen-awesome-css/doxygen-awesome-*
|
||||
|
||||
BSD-2-Clause
|
||||
_deps/monado-src/cmake/FindEigen3.cmake
|
||||
_deps/monado-src/src/external/hungarian/*
|
||||
_deps/monado-src/src/external/tracy/{client,common}/*
|
||||
_deps/monado-src/cmake/{FindEGL.cmake,FindSystemd.cmake,OptionWithDeps.cmake}
|
||||
_deps/monado-src/src/external/openvr_includes/*
|
||||
_deps/monado-src/src/external/tinyceres/*
|
||||
_deps/monado-src/src/external/tracy/libbacktrace/*
|
||||
_deps/monado-src/src/xrt/drivers/north_star/distortion_3d/*
|
||||
_deps/monado-src/src/xrt/tracking/hand/mercury/kine_lm/lm_rotations_ceres.inl
|
||||
|
||||
BSD-3-Clause AND BSL-1.0
|
||||
_deps/monado-src/src/xrt/targets/steamvr_drv/*
|
||||
|
||||
BSL-1.0
|
||||
_deps/monado-src/{CMakeLists.txt,CompilerFlags.cmake,build.gradel}
|
||||
_deps/monado-src/cmake/{CleanDirectoryList.cmake,FindHIDAPI.cmake,FindLeapV2.cmake,FindLibcheck.cmake,FindLibusb1.cmake,FindONNXRuntime.cmake,FindOpenGLES.cmake,FindOpenHMD.cmake,FindPercetto.cmake,Findbluetooth.cmake,FindcJSON.cmake,Findudev.cmake,GenerateKhrManifest.cmake,GenerateKhrManifestInternals.cmake.in,GenerateOpenXRRuntimeManifest.cmake,GenerateVulkanApiLayerManifest.cmake,GetGitRevisionDescription.cmake,GetGitRevisionDescription.cmake.in,PrefixListGlob.cmake,ProgramFilesGlob.cmake,SPIR-V.cmake,openxr_manifest.in.json.license}
|
||||
_deps/monado-src/src/external/{Catch2,android-jni-wrap,flexkalman,imgui,nvpro_pyramid,openxr_includes,solarxr,util-headers,vit_includes}
|
||||
_deps/monado-src/src/xrt/auxiliary/{android,bindings,d3d,gsteamer,math,ogl,os,tracking,util,vive,vk}/*
|
||||
_deps/monado-src/src/xrt/compositor/*
|
||||
_deps/monado-src/src/xrt/drivers/{android,arduino,daydream,depthai,euroc,hdk,ht,ht_ctrl_emu,hydra,illixr,multi_wrapper,north_star,ohmd,opengloves,psmv,qwerty,realsense,remote,rift_s,rokid,sample,simula,simulated,solarxr,steamvr_lh,survive,twrap,ultraleap_v2,v4l2,vf,vive,wmr,xreal_air}/*
|
||||
_deps/monado-src/src/xrt/include/tracking/t_hand_tracking.h
|
||||
_deps/monado-src/src/xrt/include/xrt/*
|
||||
_deps/monado-src/src/xrt/{ipc,state_trackers,targets,tracking}/*
|
||||
_deps/monado-src/tests/*
|
||||
server/{main.cpp,start_application.cpp,target_instance_wivrn.cpp}
|
||||
|
||||
BSL-1.0 AND CC0-1.0
|
||||
_deps/monado-src/{doc,scripts}/*
|
||||
|
||||
GPL-2.0-or-later
|
||||
tools/wireshark/dissector.cpp
|
||||
|
||||
GPL-3.0-or-later
|
||||
{client,common,dashboard,server}/*
|
||||
|
||||
MIT-Khronos-old
|
||||
_deps/monado-src/src/external/glad/include/KHR/khrplatform.h
|
||||
|
||||
MIT
|
||||
_deps/monado-src/cmake/sanitizers/{FindASan.cmake,FindMSan.cmake,FindSanitizers.cmake,FindTSan.cmake,FindUBSan.cmake,asan-wrapper,sanitize-helpers.cmake}
|
||||
_deps/monado-src/doc/doxygen-awesome-css/*
|
||||
_deps/monado-src/src/external/{cjson,imgui,jnipp,mermaid,renderdoc_api,solarxr,stb,tracy,valve-file-vdf}/*
|
||||
_deps/monado-src/src/xrt/targets/android_common/src/main/res/raw/*
|
||||
external/{magic_enum.hpp,magic_enum_containers.hpp,vk_mem_alloc.h}
|
||||
|
||||
Zlib
|
||||
_deps/monado-src/src/external/nanopb/*
|
||||
4
sources
4
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (WiVRn-v26.6.2.tar.gz) = ce210881d43a09a4fc8a6c6fe6e40b6925a110d715a3f15ad38d5210b9ef06361e62ee6e267ffcb8fbc0f50ff9a71254c6bcd3a3e13c7bff2b09eb2532fc0db8
|
||||
SHA512 (monado-src-1b526bb3a0ff326ecd05af4c2c541407f53c6d4b.tar.bz2) = 662bf90d5a38e05c5909ed8d1a5c099979ae49ec6f7a71552a9d0c625ddda29f6b631e0feca8a01a6bb6eefcd6aacfbc81207f2852466165c561973df1cddf97
|
||||
SHA512 (WiVRn-25.9.tar.gz) = 67db629b44cc001e25650ffe9a5cd2045d96f92471219f3dd44a9efe280c9c13a38a5d065f1f3a9e3895186d364cd3cd6e94728352a9d0beb5a01e26e355bedb
|
||||
SHA512 (monado-src-7a4018e2d89151e60e562fac79eba90ca7a328d8.tar.bz2) = 3fbc2f49e83ce768c1af3909d6d754bfb637a1ebb73b516bf6482740efe7c0de54f7d4aae229f9e883dafc833c817746c8f6009e0db5c32c33b9b474b915ec6f
|
||||
|
|
|
|||
135
wivrn.spec
135
wivrn.spec
|
|
@ -2,61 +2,105 @@
|
|||
%bcond_with x264
|
||||
|
||||
%global forgeurl0 https://github.com/WiVRn/WiVRn
|
||||
%global tag0 v%{version}
|
||||
%global wivrn_version 25.9
|
||||
%global tag0 v%{wivrn_version}
|
||||
%global date 20250917
|
||||
|
||||
# WiVRn is based on Monado, we need the full source
|
||||
# Monado base source (find in monado-rev file)
|
||||
%global forgeurl1 https://gitlab.freedesktop.org/monado/monado
|
||||
%global commit1 1b526bb3a0ff326ecd05af4c2c541407f53c6d4b
|
||||
%global monado_version 25.1.0
|
||||
%global commit1 7a4018e2d89151e60e562fac79eba90ca7a328d8
|
||||
%global monado_version 25.0.0
|
||||
|
||||
%forgemeta
|
||||
|
||||
Name: wivrn
|
||||
Version: 26.6.2
|
||||
Version: %{wivrn_version}
|
||||
Release: %autorelease
|
||||
Summary: An OpenXR streaming application to a standalone headset
|
||||
|
||||
License: %{shrink:
|
||||
Apache-2.0
|
||||
AND BSD-2-Clause
|
||||
AND BSD-3-Clause
|
||||
AND BSL-1.0
|
||||
AND CC-BY-4.0
|
||||
AND CC0-1.0
|
||||
AND CECILL-C
|
||||
AND GPL-2.0-or-later
|
||||
AND GPL-3.0-or-later
|
||||
AND MIT
|
||||
AND MIT-Khronos-old
|
||||
AND OFL-1.1
|
||||
AND Unlicense
|
||||
AND Zlib
|
||||
}
|
||||
# For a per-file license breakdown see LicenseBreakdown.
|
||||
License: GPL-3.0-or-later AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND CECILL-C AND CC0-1.0 AND CC-BY-4.0 AND MIT-Khronos-old AND Unlicense AND Zlib AND GPL-2.0-or-later AND MIT AND OFL-1.1
|
||||
# CECILL-C
|
||||
# _deps/monado-src/src/external/imgui/imgui/imconfig.h
|
||||
# CC0-1.0 AND Apache-2.0
|
||||
# _deps/monado-src/src/external/glad/*
|
||||
# Unlicense
|
||||
# _deps/monado-src/src/external/imgui/imgui/backends/imgui_impl_opengl3_loader.h
|
||||
# Apache-2.0
|
||||
# _deps/monado-src/gradle*
|
||||
# _deps/monado-src/src/external/{flexkalman,glad,mermaid,nvpro_pyramid,openxr_includes}/*
|
||||
# _deps/monado-src/src/xrt/auxiliary/math/m_quatexpmap.cpp
|
||||
# gradle*
|
||||
# resources/values/ic_wivrn_launcher_background.xml
|
||||
# Apache-2.0 OR MIT
|
||||
# _deps/monado-src/doc/doxygen-awesome-css/doxygen-awesome-*
|
||||
# BSD-2-Clause
|
||||
# _deps/monado-src/cmake/FindEigen3.cmake
|
||||
# _deps/monado-src/src/external/hungarian/*
|
||||
# _deps/monado-src/src/external/tracy/{client,common}/*
|
||||
# _deps/monado-src/cmake/{FindEGL.cmake,FindSystemd.cmake,OptionWithDeps.cmake}
|
||||
# _deps/monado-src/src/external/openvr_includes/*
|
||||
# _deps/monado-src/src/external/tinyceres/*
|
||||
# _deps/monado-src/src/external/tracy/libbacktrace/*
|
||||
# _deps/monado-src/src/xrt/drivers/north_star/distortion_3d/*
|
||||
# _deps/monado-src/src/xrt/tracking/hand/mercury/kine_lm/lm_rotations_ceres.inl
|
||||
# BSD-3-Clause AND BSL-1.0
|
||||
# _deps/monado-src/src/xrt/targets/steamvr_drv/*
|
||||
# BSL-1.0
|
||||
# _deps/monado-src/{CMakeLists.txt,CompilerFlags.cmake,build.gradel}
|
||||
# _deps/monado-src/cmake/{CleanDirectoryList.cmake,FindHIDAPI.cmake,FindLeapV2.cmake,FindLibcheck.cmake,FindLibusb1.cmake,FindONNXRuntime.cmake,FindOpenGLES.cmake,FindOpenHMD.cmake,FindPercetto.cmake,Findbluetooth.cmake,FindcJSON.cmake,Findudev.cmake,GenerateKhrManifest.cmake,GenerateKhrManifestInternals.cmake.in,GenerateOpenXRRuntimeManifest.cmake,GenerateVulkanApiLayerManifest.cmake,GetGitRevisionDescription.cmake,GetGitRevisionDescription.cmake.in,PrefixListGlob.cmake,ProgramFilesGlob.cmake,SPIR-V.cmake,openxr_manifest.in.json.license}
|
||||
# _deps/monado-src/src/external/{Catch2,android-jni-wrap,flexkalman,imgui,nvpro_pyramid,openxr_includes,solarxr,util-headers,vit_includes}
|
||||
# _deps/monado-src/src/xrt/auxiliary/{android,bindings,d3d,gsteamer,math,ogl,os,tracking,util,vive,vk}/*
|
||||
# _deps/monado-src/src/xrt/compositor/*
|
||||
# _deps/monado-src/src/xrt/drivers/{android,arduino,daydream,depthai,euroc,hdk,ht,ht_ctrl_emu,hydra,illixr,multi_wrapper,north_star,ohmd,opengloves,psmv,qwerty,realsense,remote,rift_s,rokid,sample,simula,simulated,solarxr,steamvr_lh,survive,twrap,ultraleap_v2,v4l2,vf,vive,wmr,xreal_air}/*
|
||||
# _deps/monado-src/src/xrt/include/tracking/t_hand_tracking.h
|
||||
# _deps/monado-src/src/xrt/include/xrt/*
|
||||
# _deps/monado-src/src/xrt/{ipc,state_trackers,targets,tracking}/*
|
||||
# _deps/monado-src/tests/*
|
||||
# server/{main.cpp,start_application.cpp,target_instance_wivrn.cpp}
|
||||
# BSL-1.0 AND CC0-1.0
|
||||
# _deps/monado-src/{doc,scripts}/*
|
||||
# GPL-2.0-or-later
|
||||
# tools/wireshark/dissector.cpp
|
||||
# GPL-3.0-or-later
|
||||
# {client,common,dashboard,server}/*
|
||||
# MIT-Khronos-old
|
||||
# _deps/monado-src/src/external/glad/include/KHR/khrplatform.h
|
||||
# MIT
|
||||
# _deps/monado-src/cmake/sanitizers/{FindASan.cmake,FindMSan.cmake,FindSanitizers.cmake,FindTSan.cmake,FindUBSan.cmake,asan-wrapper,sanitize-helpers.cmake}
|
||||
# _deps/monado-src/doc/doxygen-awesome-css/*
|
||||
# _deps/monado-src/src/external/{cjson,imgui,jnipp,mermaid,renderdoc_api,solarxr,stb,tracy,valve-file-vdf}/*
|
||||
# _deps/monado-src/src/xrt/targets/android_common/src/main/res/raw/*
|
||||
# external/{magic_enum.hpp,magic_enum_containers.hpp,vk_mem_alloc.h}
|
||||
# Zlib
|
||||
# _deps/monado-src/src/external/nanopb/*
|
||||
URL: %{forgeurl0}
|
||||
Source0: %{forgesource0}
|
||||
# License: GPL-3.0-or-later
|
||||
Source1: %{forgeurl1}/-/archive/%{commit1}/monado-src-%{commit1}.tar.bz2
|
||||
# https://github.com/WiVRn/WiVRn/issues/505 - Fix APK download
|
||||
Patch99: https://github.com/WiVRn/WiVRn/commit/66ca73981d0c6c079b34566fa53a7a415c403611.patch
|
||||
|
||||
# Check for new/removed patches when updating: https://github.com/WiVRn/WiVRn/tree/master/patches/monado/ (check the tag)
|
||||
# Make sure to re-pull the patches every release. They are rebased and need to be updated!
|
||||
# For tagged releases: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%%{tag0}/patches/monado/
|
||||
# For commit releases: https://raw.githubusercontent.com/WiVRn/WiVRn/%%{commit0}/patches/monado/
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0001: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0001-c-multi-early-wake-of-compositor.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0002: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0002-Use-extern-socket-fd.patch
|
||||
Patch0002: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0002-ipc-server-Always-listen-to-stdin.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0003: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0003-change-environment-blend-mode-selection-logic.patch
|
||||
Patch0003: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0003-Use-extern-socket-fd.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0004: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0004-st-oxr-forward-0-refresh-rate.patch
|
||||
Patch0004: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0004-change-environment-blend-mode-selection-logic.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0005: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0005-d-steamvr_lh-prevent-crash-on-vive-pro2-WiVRn.patch
|
||||
Patch0005: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0005-c-main-allow-custom-pacing-app-factory.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0006: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0006-st-oxr-push-XrEventDataInteractionProfileChanged-whe.patch
|
||||
Patch0006: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0006-st-oxr-forward-0-refresh-rate.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0007: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0007-don-t-verify-GL-stuff.patch
|
||||
Patch0007: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0007-Replace-distortion-with-foveation.patch
|
||||
# downstream-only - WiVRn specific Monado patches
|
||||
Patch0008: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0008-configure-u_git_tag-in-WiVRn.patch
|
||||
Patch0008: https://raw.githubusercontent.com/WiVRn/WiVRn/refs/tags/%{tag0}/patches/monado/0008-Limit-foveation-samples-per-pixel.patch
|
||||
|
||||
|
||||
# If BuildRequires change, be sure to update envision-wivrn Requires
|
||||
|
|
@ -73,7 +117,6 @@ BuildRequires: kf6-kcoreaddons-devel
|
|||
BuildRequires: kf6-ki18n-devel
|
||||
BuildRequires: kf6-kiconthemes-devel
|
||||
BuildRequires: kf6-kirigami-devel
|
||||
BuildRequires: kf6-kirigami-addons-devel
|
||||
BuildRequires: libappstream-glib
|
||||
BuildRequires: librsvg2-tools
|
||||
BuildRequires: ninja-build
|
||||
|
|
@ -131,10 +174,7 @@ BuildRequires: pkgconfig(x264)
|
|||
%endif
|
||||
BuildRequires: pkgconfig(xrandr)
|
||||
BuildRequires: qcoro-qt6-devel
|
||||
BuildRequires: qt6-qtbase-private-devel
|
||||
BuildRequires: qt6-qtdeclarative-devel
|
||||
BuildRequires: qt6qml(org.kde.desktop)
|
||||
BuildRequires: spirv-tools
|
||||
BuildRequires: systemd-rpm-macros
|
||||
|
||||
Requires: android-tools
|
||||
|
|
@ -146,10 +186,9 @@ Recommends: %{name}-dashboard
|
|||
|
||||
Provides: bundled(monado) = %{monado_version}
|
||||
|
||||
# no big-endian support, vulkan 32bit headers broken, android-tools not available on ppc64le
|
||||
# no big-endian support, vulkan 32bit headers broken
|
||||
# https://github.com/WiVRn/WiVRn/issues/271
|
||||
# https://src.fedoraproject.org/rpms/android-tools/c/38eea7154cb5930259f7a3ae59cdb123fb7d2862?branch=rawhide
|
||||
ExcludeArch: s390x %{ix86} ppc64le
|
||||
ExcludeArch: s390x %{ix86}
|
||||
|
||||
%description
|
||||
WiVRn wirelessly connects a standalone VR headset to a Linux computer.
|
||||
|
|
@ -158,10 +197,9 @@ on the computer.
|
|||
|
||||
Supports a wide range of headsets such as:
|
||||
|
||||
Meta Quest 1, 2, 3, 3S, pro
|
||||
Quest 1 / 2 / Pro / 3 / 3S
|
||||
Pico Neo 4
|
||||
HTC Vive Focus 3, XR Elite
|
||||
Samsung Galaxy XR
|
||||
HTC Vive Focus 3 / HTC Vive XR elite
|
||||
and most other Android based headsets
|
||||
|
||||
|
||||
|
|
@ -169,7 +207,6 @@ and most other Android based headsets
|
|||
Summary: WiVRn dashboard
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: hicolor-icon-theme
|
||||
Requires: kf6-kirigami-addons
|
||||
Requires: qt6qml(org.kde.desktop)
|
||||
|
||||
%description -n %{name}-dashboard
|
||||
|
|
@ -180,12 +217,15 @@ and to assist in pairing the headset with the server.
|
|||
|
||||
|
||||
%prep
|
||||
%setup -q -n WiVRn-%{version}
|
||||
%forgesetup
|
||||
|
||||
# Fix APK download
|
||||
%patch -P99 -p1
|
||||
|
||||
# Extract libraries that are bundled
|
||||
mkdir -p _deps/monado-src
|
||||
tar -xvf %{SOURCE1} --strip-components 1 -C _deps/monado-src
|
||||
# Apply WiVRn downstream Monado patches
|
||||
# Apply WiVRn downstream patches
|
||||
pushd _deps/monado-src
|
||||
%patch -P0001 -p1
|
||||
%patch -P0002 -p1
|
||||
|
|
@ -207,14 +247,12 @@ popd
|
|||
-DFETCHCONTENT_BASE_DIR="_deps" \
|
||||
-DFETCHCONTENT_FULLY_DISCONNECTED=ON \
|
||||
-DGIT_DESC=v%{version} \
|
||||
-DGIT_COMMIT=v%{version} \
|
||||
-DOVR_COMPAT_SEARCH_PATH=%{_libdir}/opencomposite/runtime:%{_libdir}/xrizer/runtime:/opt/opencomposite:/opt/xrizer \
|
||||
-DOVR_COMPAT_SEARCH_PATH=%{_libdir}/opencomposite/runtime \
|
||||
-DWIVRN_BUILD_CLIENT=OFF \
|
||||
-DWIVRN_BUILD_DASHBOARD=ON \
|
||||
-DWIVRN_BUILD_DISSECTOR=OFF \
|
||||
-DWIVRN_BUILD_SERVER=ON \
|
||||
-DWIVRN_BUILD_WIVRNCTL=ON \
|
||||
-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON \
|
||||
-DWIVRN_USE_NVENC=ON \
|
||||
-DWIVRN_USE_PIPEWIRE=ON \
|
||||
-DWIVRN_USE_PULSEAUDIO=OFF \
|
||||
|
|
@ -237,10 +275,6 @@ popd
|
|||
install -m 0755 -vd %{buildroot}%{_sysconfdir}/ld.so.conf.d
|
||||
echo "%{_libdir}/%{name}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}.conf
|
||||
|
||||
# Import the WiVRn OpenXR runtime into Steam's pressure-vessel container
|
||||
install -m 0755 -vd %{buildroot}%{_environmentdir}
|
||||
echo "PRESSURE_VESSEL_IMPORT_OPENXR_1_RUNTIMES=1" > %{buildroot}%{_environmentdir}/%{name}.conf
|
||||
|
||||
%find_lang %{name}-dashboard
|
||||
|
||||
%check
|
||||
|
|
@ -251,19 +285,18 @@ appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/*.metainfo.xml
|
|||
%files -f %{name}-dashboard.lang
|
||||
%license COPYING LICENSE-OFL-1.1 _deps/monado-src/LICENSES/*
|
||||
%doc README.md docs/
|
||||
%{_bindir}/wivrn-server
|
||||
%caps(cap_sys_nice=ep) %{_bindir}/wivrn-server
|
||||
%{_bindir}/wivrnctl
|
||||
%dir %{_libdir}/%{name}
|
||||
%{_libdir}/%{name}/libopenxr_wivrn.so
|
||||
%{_libdir}/%{name}/libmonado_wivrn.so
|
||||
%{_libdir}/%{name}/libmonado_wivrn.so.25
|
||||
%{_libdir}/%{name}/libmonado_wivrn.so.25.1.0
|
||||
%{_libdir}/%{name}/libmonado_wivrn.so.25.0.0
|
||||
%{_datarootdir}/openxr/1/openxr_wivrn.json
|
||||
%{_userunitdir}/wivrn.service
|
||||
%{_prefix}/lib/firewalld/services/wivrn.xml
|
||||
%{_metainfodir}/io.github.wivrn.wivrn.metainfo.xml
|
||||
%{_sysconfdir}/ld.so.conf.d/%{name}.conf
|
||||
%{_environmentdir}/%{name}.conf
|
||||
|
||||
%files -n %{name}-dashboard
|
||||
%{_bindir}/wivrn-dashboard
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue