You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询OpenXR运行时库的API版本?

查询OpenXR运行时API版本及版本兼容问题解决方案

一、如何查询运行时支持的OpenXR API版本

  • 使用加载器的版本枚举函数(推荐)
    如果你使用的是OpenXR 1.1及以上版本的加载器,可以直接调用xrEnumerateApiVersions,无需提前创建实例。这个函数会返回运行时支持的所有API版本范围:
    uint32_t versionCount = 0;
    xrEnumerateApiVersions(nullptr, &versionCount, nullptr);
    std::vector<XrApiVersion> supportedVersions(versionCount);
    xrEnumerateApiVersions(nullptr, &versionCount, supportedVersions.data());
    
    每个返回的XrApiVersion包含运行时支持的最低和最高API版本,你可以从中确定兼容的版本号。
  • 降级尝试创建实例(兼容旧版运行时)
    若加载器不支持xrEnumerateApiVersions(比如运行时基于OpenXR 1.0),可以从最低兼容版本(如XR_VERSION_1_0)开始,逐步尝试调用xrCreateInstance,直到遇到XR_ERROR_API_VERSION_UNSUPPORTED,此时前一个成功的版本就是运行时支持的最高API版本。
  • 系统工具直接查看
    你提到的Windows Mixed Reality“OpenXR Tools”应用可以直接显示当前激活运行时的API版本,这是Windows平台下最直观的验证方式。

二、解决XR_ERROR_API_VERSION_UNSUPPORTED报错

你当前的核心问题是SDK更新到1.1.41,但目标运行时仅支持1.0.28版本,按以下方式处理:

  • 指定运行时兼容的API版本
    将XrInstanceCreateInfo::applicationInfo.apiVersion设置为XR_MAKE_VERSION(1, 0, 28)(即运行时支持的1.0.28版本),而非SDK的最新版本1.1.41。OpenXR允许高版本SDK连接低版本运行时,只要指定的API版本在运行时支持范围内。
  • 避免使用apiVersion=0
    OpenXR规范未定义apiVersion=0的行为,属于未操作,可能引发不可预期的问题,绝对不要依赖这个方案。
  • 明确SDK与运行时版本的区别
    SDK版本是你开发时使用的头文件和加载器版本,运行时API版本是平台/设备支持的OpenXR规范版本,两者无需完全一致,只要指定的apiVersion在运行时支持的范围内即可。

内容的提问来源于stack exchange,提问作者Theodore Hall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:12:45