跳转到内容

故障排查

找症状,不要找子系统。如果下面没有一条对得上你的情况,直接跳到仍然卡住。

恢复界面,在合成器重启之后提出恢复叠加层。

vrOS 会在它的召唤动作触发时显示仪表盘。触发它的那个输入不住在 vrOS 里:手柄绑定归 SteamVR 管,vrOS 只负责注册动作。

  1. 打开 SteamVR,然后进入手柄绑定。vrOS 应该会列在你的手柄下面,并已加载随附的默认绑定。
  2. 在 VR 里打开设置并进入控制。那里会显示 vrOS 当前实际看到的绑定,在 STEAMVR 中编辑会把 SteamVR 的绑定界面打开到对应的页面。在桌面窗口里这些行是空的,按钮也被禁用 — 这个读数需要一个正在运行的 VR 会话。

默认绑定的输入是双击。单纯的双击会隐藏和显示全部;在双击的同时保持一个手势,则只切换仪表盘(随附的默认手势是手枪手势,在你的左手上)。组合、手势和用哪只手,都是设置 → 控制里的设置项。当一次按下同时满足两个组合时,仪表盘的那个组合获胜 — 这样仪表盘总能被召唤回来。

SteamVR 已经在运行时,vrOS 会连上去。它不会启动 SteamVR。见 FAQ。

一切都不见了,而 SteamVR 好好的

Section titled “一切都不见了,而 SteamVR 好好的”

那是隐藏 / 显示全部。再双击一次就能把它们叫回来。已固定的叠加层不受影响,会保持可见;从仪表盘列表或桌面窗口显示单个叠加层,则只会显示那一个。隐藏 / 显示全部只关乎呈现:它从不被保存,任何让 VR 侧重启的事情都会让你的叠加层重新显示出来。

它们会自己回来。所有碰到 VR 运行时、GPU 或捕获 API 的东西,都跑在一个受监管的独立子进程里,而所有持久状态都住在核心应用里。运行时出错时,核心毫发无损:子进程断开,等待运行时回来,然后重新连接。如果子进程自己死了,vrOS 会按退避重启它,并从核心状态把它重建出来 — 原地重建,带着你的布局。

唯一不会回来的情况是崩溃循环。在很短的时间窗口里反复失败之后,vrOS 会停止重启子进程,转而在托盘和桌面窗口里把错误显示出来,而不是继续折腾。到那里去读这个错误。

先确认 SteamVR 本身已经完全连接。只接了显示线而没接 USB 的头显,会让 SteamVR 处于半连接状态:面板照常渲染,追踪和输入却永远不到,仪表盘看起来像一张静止的图。这是仪表盘看着像死了的最常见原因。在去别处找之前,先确认 SteamVR 报告头显和手柄都已就绪。

vrOS 只运行一个输入仲裁器,而它的工作就是给你让路。当前的持有者会作为输入徽章显示在仪表盘上:VR、切换或桌面。

  • 碰一下你的实体鼠标或键盘,输入会立刻交回桌面。桌子被撞一下会设一段短的锁定;持续、有意的鼠标移动会设一段更长的。
  • 只有当你有意在一个叠加层上扣下扳机时,VR 才会把输入拿回来。仅仅移动手柄绝不会夺回它。
  • 打字会进到你最后点击过的那个捕获面板。如果按键落进了错误的窗口,先用扳机点一下你想要的那个面板。
  • 在你用实体键盘打完字之后的几秒钟里,VR 键盘仍然可见,但是不起作用。在这段锁定期间,它的按键完全不做任何事,而不是半灵不灵。用扳机点一下面板即可夺回。

完整的模型在输入和 VR 键盘里。

点击对某一个特定窗口不起作用(Windows)

Section titled “点击对某一个特定窗口不起作用(Windows)”

Windows 会拒绝把注入的输入送进权限比发送方更高的窗口。vrOS 有意以非提权方式运行,也从不自我提权,所以以管理员身份运行的窗口不会接受来自面板的点击或按键。来源选择器会给这些窗口打徽章,让你在捕获之前就能看到。如果可以,就不要用管理员身份运行那个程序。

捕获的窗口显示一个琥珀色徽章

Section titled “捕获的窗口显示一个琥珀色徽章”

琥珀色表示来源窗口在操作系统层面已最小化。捕获停止,面板平平地保留它的最后一帧,重绘次数为零。用恢复 — 叠加层行上和添加叠层列表的行上都有 — 它会恢复这个窗口,并在它稳定下来之后重新把来源列出来。

如果来源不是最小化而是没有了,面板会说来源丢失:窗口已经关闭。移除这个叠加层(两步,用确认和取消),然后重新捕获它。

调用一个已保存的预设,会先恢复最小化的来源,然后再应用布局,这样预设回来时不会满是冻住的面板。

默认情况下,显示一个锚定到世界的叠加层,会把它带到你现在站立的位置,并保留你给它的排布。行上的开关、调用预设、从隐藏 / 显示全部回来,以及启动时的恢复,都属于这一类。已固定的叠加层会保留你把它放在房间里的那个确切位置。这两种行为都是设置 → 常规里的开关,就在新叠加层默认值以及叠加层重启时是否恢复的旁边。每个叠加层各自的重新居中会把单个面板拉回到你面前。见面板和游玩空间。

设置 → 音频路由为每个通道映射一台输出设备:音效板播放、虚拟麦克风馈送,以及界面和键盘的反馈。留空表示系统默认输出。

已配置但没有连接的设备会在窗格里显示为已丢失。这个通道上的声音会等待,而不是背着你把你的音频挪到别处去。界面通道是唯一的例外 — 它会回退到系统默认设备,因为键盘反馈变哑比它换个地方响更糟。把设备重新插上,通道就会重新绑定;系统默认设备的更换也会被接收到,无需重启。音量为 0 就是静音;没有单独的静音开关。

从性能开始。有两个读数最常把人带偏。

驱动时间。 每个核心单元格都带着一条窄的伴随条,表示 DPC 加中断时间。驱动时间为零时它不出现,而在一台健康的机器上,绝大多数核心秒都是零。这两条柱走的是不同的坐标轴 — 核心柱是 0 到 100 百分比,伴随柱是 0 到 25 — 所以细柱可能画得更高,代表的数字却更小。确切的数值请从悬停或聚焦时该单元格打开的读数里读:核心、占用百分比、DPC、ISR。一个持续停在百分之几 DPC 的核心,做的是延后的驱动工作,不是应用程序的工作。在一台测试机上,某个核心读出 9.23 百分比占用,其中 4.62 百分比是 DPC — 那个核心一半的时间是驱动,而进程列表永远不会这么告诉你。在 Linux 上,同样这两个量来自 irq 和 softirq。

占用最高的进程和 I/O 行。 两者都来自每两秒一次的全系统进程表读取,只在仪表盘显示时进行,而名称是可执行文件。在设置 → 常规里关掉进程监视,会把这两者都隐藏,并停止这次读取。

这个区域的排列方式(条带、经典、仪表台、放大)和设备条也在设置 → 常规里。

捕获走的是你桌面的屏幕共享门户,所以你看到的选择器是你桌面环境自己的对话框。取消它,就不会有捕获开始。

如果你从一台 Linux 主机无线串流到 Quest 一类的头显:Steam Link 在 Linux 主机上的上游实现是坏的。请改用 WiVRn 或 Monado、ALVR,或者有线头显。

Windows 上是 %APPDATA%\vrOS\config.toml,Linux 上是 $XDG_CONFIG_HOME/vros/config.toml。这个文件在你第一次改设置时创建;在那之前,文件不存在就意味着用默认值。

  • Discord — 最快,而且其他用户也在那里。
  • support.vros.cat — 在公开的问题追踪系统上提交一份缺陷报告,并给你一个可以跟进的编号。

请附上你的操作系统、你的头显、你用的是哪个 VR 运行时(SteamVR,或者 Monado 和 WiVRn),以及出问题之前你刚做了什么。vrOS 没有遥测,也不发送崩溃报告,所以除非你自己发送,否则关于问题的任何信息都不会到达我们这里。