KhronosGroup / OpenXR-SDK-Source

Sources for OpenXR loader, basic API layers, and example code.

Home Page:https://khronos.org/openxr

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Crash on xrCreateSession

BanTheRewind opened this issue · comments

I'm on Windows 11, VS2022, latest Oculus app with Quest 3 over Quest Link (Windows build, not Android atm). Using Vulkan for graphics. RTX 3080 and overall up-to-date machine. I pulled down the repo today, so the code is current.

I get a crash when I call xrCreateSession, specifically inside this method...:

extern "C" LOADER_EXPORT XRAPI_ATTR XrResult XRAPI_CALL xrCreateSession(
    XrInstance                                  instance,
    const XrSessionCreateInfo*                  createInfo,
    XrSession*                                  session) XRLOADER_ABI_TRY {
    LoaderInstance* loader_instance;
    XrResult result = ActiveLoaderInstance::Get(&loader_instance, "xrCreateSession");
    if (XR_SUCCEEDED(result)) {
        result = loader_instance->DispatchTable()->CreateSession(instance, createInfo, session);
    }
    return result;
}
XRLOADER_ABI_CATCH_FALLBACK

It crashes at loader_instance->DispatchTable()->CreateSession(instance, createInfo, session);

Inspecting the loader_instance, it appears that _messenger is null and loader_instance is 0. All other members appear to be valid. The arguments I'm passing in are also valid, and I am successfully calling xrGetVulkanGraphicsRequirements2KHR before creating the session. The SDK is working otherwise. It connects to OpenXR when Oculus is running, and it appears to detect HMD changes. Once the HMD is ready to connect, it crashes after doing all the expected prep.

Here is the actual exception.

Exception thrown at 0x00007FFC1CAE077F (LibOVRRT64_1.dll) in MyApp.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

An issue (number 2178) has been filed to correspond to this issue in the internal Khronos GitLab (Khronos members only: KHR:openxr/openxr#2178 ), to facilitate working group processes.

This GitHub issue will continue to be the main site of discussion.