wineopenxr: Use API version 1.0.0 if current is not supported by the runtime.
CW-Bug-Id: #23689
This commit is contained in:
parent
c25afe23ab
commit
5cfe529c2a
1 changed files with 10 additions and 2 deletions
|
@ -239,6 +239,7 @@ struct XrApiLayerNextInfo {
|
||||||
|
|
||||||
static char *g_instance_extensions, *g_device_extensions;
|
static char *g_instance_extensions, *g_device_extensions;
|
||||||
static uint32_t g_physdev_vid, g_physdev_pid;
|
static uint32_t g_physdev_vid, g_physdev_pid;
|
||||||
|
static XrVersion api_version = XR_CURRENT_API_VERSION;
|
||||||
|
|
||||||
static char *strdupA(const char *s)
|
static char *strdupA(const char *s)
|
||||||
{
|
{
|
||||||
|
@ -445,7 +446,7 @@ int WINAPI __wineopenxr_get_extensions_internal(char **ret_instance_extensions,
|
||||||
.applicationInfo = {
|
.applicationInfo = {
|
||||||
.applicationVersion = 0,
|
.applicationVersion = 0,
|
||||||
.engineVersion = 0,
|
.engineVersion = 0,
|
||||||
.apiVersion = XR_CURRENT_API_VERSION,
|
.apiVersion = api_version,
|
||||||
},
|
},
|
||||||
.enabledApiLayerCount = 0,
|
.enabledApiLayerCount = 0,
|
||||||
.enabledApiLayerNames = NULL,
|
.enabledApiLayerNames = NULL,
|
||||||
|
@ -487,6 +488,13 @@ int WINAPI __wineopenxr_get_extensions_internal(char **ret_instance_extensions,
|
||||||
strcpy(xrCreateInfo.applicationInfo.engineName, "wineopenxr test instance");
|
strcpy(xrCreateInfo.applicationInfo.engineName, "wineopenxr test instance");
|
||||||
|
|
||||||
res = xrCreateInstance(&xrCreateInfo, &instance);
|
res = xrCreateInstance(&xrCreateInfo, &instance);
|
||||||
|
if (res == XR_ERROR_API_VERSION_UNSUPPORTED)
|
||||||
|
{
|
||||||
|
WINE_WARN("version %#llx unsupported.\n", (long long)api_version);
|
||||||
|
api_version = XR_MAKE_VERSION(1, 0, 0);
|
||||||
|
xrCreateInfo.applicationInfo.apiVersion = api_version;
|
||||||
|
res = xrCreateInstance(&xrCreateInfo, &instance);
|
||||||
|
}
|
||||||
if(res != XR_SUCCESS){
|
if(res != XR_SUCCESS){
|
||||||
WINE_WARN("xrCreateInstance failed: %d\n", res);
|
WINE_WARN("xrCreateInstance failed: %d\n", res);
|
||||||
return res;
|
return res;
|
||||||
|
@ -1108,7 +1116,7 @@ XrResult WINAPI wine_xrNegotiateLoaderRuntimeInterface(const XrNegotiateLoaderIn
|
||||||
|
|
||||||
runtimeRequest->runtimeInterfaceVersion = XR_CURRENT_LOADER_RUNTIME_VERSION;
|
runtimeRequest->runtimeInterfaceVersion = XR_CURRENT_LOADER_RUNTIME_VERSION;
|
||||||
runtimeRequest->getInstanceProcAddr = (PFN_xrGetInstanceProcAddr)&wine_xrGetInstanceProcAddr;
|
runtimeRequest->getInstanceProcAddr = (PFN_xrGetInstanceProcAddr)&wine_xrGetInstanceProcAddr;
|
||||||
runtimeRequest->runtimeApiVersion = XR_CURRENT_API_VERSION;
|
runtimeRequest->runtimeApiVersion = api_version;
|
||||||
|
|
||||||
return XR_SUCCESS;
|
return XR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue