···237238 hmd_parts->display = display;
239 hmd->set_hmd_parts(std::move(hmd_parts));
0240 return true;
241}
242···770}
771772extern "C" enum xrt_result
773-steamvr_lh_create_devices(struct xrt_system_devices **out_xsysd)
774{
775 u_logging_level level = debug_get_log_option_lh_log();
776 // The driver likes to create a bunch of transient folders -
···861862 // Include the HMD
863 if (svrs->ctx->hmd) {
0000864 // Always have a head at index 0 and iterate dev count.
865 xsysd->xdevs[xsysd->xdev_count] = svrs->ctx->hmd;
866 xsysd->static_roles.head = xsysd->xdevs[xsysd->xdev_count++];
···237238 hmd_parts->display = display;
239 hmd->set_hmd_parts(std::move(hmd_parts));
240+241 return true;
242}
243···771}
772773extern "C" enum xrt_result
774+steamvr_lh_create_devices(struct xrt_prober *xp, struct xrt_system_devices **out_xsysd)
775{
776 u_logging_level level = debug_get_log_option_lh_log();
777 // The driver likes to create a bunch of transient folders -
···862863 // Include the HMD
864 if (svrs->ctx->hmd) {
865+ if (svrs->ctx->hmd->variant == VIVE_VARIANT_PRO2 && !svrs->ctx->hmd->init_vive_pro_2(xp)) {
866+ U_LOG_IFL_W(level, "Found Vive Pro 2, but failed to initialize.");
867+ }
868+869 // Always have a head at index 0 and iterate dev count.
870 xsysd->xdevs[xsysd->xdev_count] = svrs->ctx->hmd;
871 xsysd->static_roles.head = xsysd->xdevs[xsysd->xdev_count++];