The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

c/multi: Pass in option to do warm start-ups

authored by

Jakob Bornecrantz and committed by
Moses Turner
e0660853 6faea922

+12 -4
+1 -1
src/xrt/compositor/main/comp_compositor.c
··· 1305 1305 xrt_result_t xret = u_pa_factory_create(&upaf); 1306 1306 assert(xret == XRT_SUCCESS && upaf != NULL); 1307 1307 1308 - return comp_multi_create_system_compositor(&c->base.base, upaf, sys_info, out_xsysc); 1308 + return comp_multi_create_system_compositor(&c->base.base, upaf, sys_info, true, out_xsysc); 1309 1309 }
+7
src/xrt/compositor/multi/comp_multi_interface.h
··· 24 24 * through a "multi compositor") and that drives a single native compositor. 25 25 * Both the native compositor and the pacing factory is owned by the system 26 26 * compositor and destroyed by it. 27 + * 28 + * @param xcn Native compositor that client are multi-plexed to. 29 + * @param upaf App pacing factory, one pacer created per client. 30 + * @param xsci Information to be exposed. 31 + * @param do_warm_start Should we always submit a frame at startup. 32 + * @param out_xsysc Created @ref xrt_system_compositor. 27 33 */ 28 34 xrt_result_t 29 35 comp_multi_create_system_compositor(struct xrt_compositor_native *xcn, 30 36 struct u_pacing_app_factory *upaf, 31 37 const struct xrt_system_compositor_info *xsci, 38 + bool do_warm_start, 32 39 struct xrt_system_compositor **out_xsysc); 33 40 34 41
+2 -1
src/xrt/compositor/multi/comp_multi_system.c
··· 642 642 comp_multi_create_system_compositor(struct xrt_compositor_native *xcn, 643 643 struct u_pacing_app_factory *upaf, 644 644 const struct xrt_system_compositor_info *xsci, 645 + bool do_warm_start, 645 646 struct xrt_system_compositor **out_xsysc) 646 647 { 647 648 struct multi_system_compositor *msc = U_TYPED_CALLOC(struct multi_system_compositor); ··· 654 655 msc->base.info = *xsci; 655 656 msc->upaf = upaf; 656 657 msc->xcn = xcn; 657 - msc->sessions.state = MULTI_SYSTEM_STATE_STOPPED; 658 658 msc->sessions.active_count = 0; 659 + msc->sessions.state = do_warm_start ? MULTI_SYSTEM_STATE_INIT_WARM_START : MULTI_SYSTEM_STATE_STOPPED; 659 660 660 661 os_mutex_init(&msc->list_and_timing_lock); 661 662
+1 -1
src/xrt/compositor/null/null_compositor.c
··· 589 589 xrt_result_t xret = u_pa_factory_create(&upaf); 590 590 assert(xret == XRT_SUCCESS && upaf != NULL); 591 591 592 - return comp_multi_create_system_compositor(&c->base.base, upaf, &c->sys_info, out_xsysc); 592 + return comp_multi_create_system_compositor(&c->base.base, upaf, &c->sys_info, false, out_xsysc); 593 593 }
+1 -1
src/xrt/targets/sdl_test/sdl_compositor.c
··· 604 604 xrt_result_t xret = u_pa_factory_create(&upaf); 605 605 assert(xret == XRT_SUCCESS && upaf != NULL); 606 606 607 - return comp_multi_create_system_compositor(&sp->c.base.base, upaf, &sp->c.sys_info, out_xsysc); 607 + return comp_multi_create_system_compositor(&sp->c.base.base, upaf, &sp->c.sys_info, false, out_xsysc); 608 608 }