Browse Source

openxr: Revert to 1.0.28, newer versions crash on Windows/Mingw-GCC

Reverts #82582.
Works around #83674.

Users tested 1.0.29, 1.0.30, and 1.0.31, which all triggered the same issue,
with both mingw-gcc from Fedora 36 and Fedora 39.
Rémi Verschelde 1 year ago
parent
commit
2079bbabfd

+ 0 - 1
modules/openxr/SCsub

@@ -71,7 +71,6 @@ if env["builtin_openxr"]:
         # Build the engine using object files
         khrloader_obj = []
         env_thirdparty.add_source_files(khrloader_obj, thirdparty_dir + "/src/xr_generated_dispatch_table.c")
-        env_thirdparty.add_source_files(khrloader_obj, thirdparty_dir + "/src/xr_generated_dispatch_table_core.c")
 
         env_thirdparty.add_source_files(khrloader_obj, thirdparty_dir + "/src/common/filesystem_utils.cpp")
         env_thirdparty.add_source_files(khrloader_obj, thirdparty_dir + "/src/common/object_info.cpp")

+ 1 - 1
thirdparty/README.md

@@ -672,7 +672,7 @@ with the provided patch.
 ## openxr
 
 - Upstream: https://github.com/KhronosGroup/OpenXR-SDK
-- Version: 1.0.30 (55224479ab13db8ebc8ab1e3d49197bce6201b0b, 2023)
+- Version: 1.0.28 (f5beb0131f1bea8701ace744d1b50df9049bf331, 2023)
 - License: Apache 2.0
 
 Files extracted from upstream source:

+ 13 - 44
thirdparty/openxr/include/openxr/openxr.h

@@ -25,7 +25,7 @@ extern "C" {
     ((((major) & 0xffffULL) << 48) | (((minor) & 0xffffULL) << 32) | ((patch) & 0xffffffffULL))
 
 // OpenXR current version number.
-#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 30)
+#define XR_CURRENT_API_VERSION XR_MAKE_VERSION(1, 0, 28)
 
 #define XR_VERSION_MAJOR(version) (uint16_t)(((uint64_t)(version) >> 48)& 0xffffULL)
 #define XR_VERSION_MINOR(version) (uint16_t)(((uint64_t)(version) >> 32) & 0xffffULL)
@@ -491,7 +491,6 @@ typedef enum XrStructureType {
     XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB = 1000209002,
     XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB = 1000212000,
     XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META = 1000216000,
-    XR_TYPE_PASSTHROUGH_PREFERENCES_META = 1000217000,
     XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META = 1000219001,
     XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META = 1000219002,
     XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META = 1000219003,
@@ -1800,7 +1799,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrThermalGetTemperatureTrendEXT(
 
 #define XR_EXT_debug_utils 1
 XR_DEFINE_HANDLE(XrDebugUtilsMessengerEXT)
-#define XR_EXT_debug_utils_SPEC_VERSION   5
+#define XR_EXT_debug_utils_SPEC_VERSION   4
 #define XR_EXT_DEBUG_UTILS_EXTENSION_NAME "XR_EXT_debug_utils"
 typedef XrFlags64 XrDebugUtilsMessageSeverityFlagsEXT;
 
@@ -2116,9 +2115,9 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSetInputDeviceLocationEXT(
 
 #define XR_MSFT_spatial_graph_bridge 1
 XR_DEFINE_HANDLE(XrSpatialGraphNodeBindingMSFT)
-#define XR_GUID_SIZE_MSFT                 16
 #define XR_MSFT_spatial_graph_bridge_SPEC_VERSION 2
 #define XR_MSFT_SPATIAL_GRAPH_BRIDGE_EXTENSION_NAME "XR_MSFT_spatial_graph_bridge"
+#define XR_GUID_SIZE_MSFT                 16
 
 typedef enum XrSpatialGraphNodeTypeMSFT {
     XR_SPATIAL_GRAPH_NODE_TYPE_STATIC_MSFT = 1,
@@ -2454,9 +2453,9 @@ typedef struct XrSecondaryViewConfigurationSwapchainCreateInfoMSFT {
 #define XR_NULL_CONTROLLER_MODEL_KEY_MSFT 0
 
 XR_DEFINE_ATOM(XrControllerModelKeyMSFT)
-#define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64
 #define XR_MSFT_controller_model_SPEC_VERSION 2
 #define XR_MSFT_CONTROLLER_MODEL_EXTENSION_NAME "XR_MSFT_controller_model"
+#define XR_MAX_CONTROLLER_MODEL_NODE_NAME_SIZE_MSFT 64
 typedef struct XrControllerModelKeyStateMSFT {
     XrStructureType             type;
     void* XR_MAY_ALIAS          next;
@@ -3267,7 +3266,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrRequestDisplayRefreshRateFB(
 
 
 #define XR_HTCX_vive_tracker_interaction 1
-#define XR_HTCX_vive_tracker_interaction_SPEC_VERSION 3
+#define XR_HTCX_vive_tracker_interaction_SPEC_VERSION 2
 #define XR_HTCX_VIVE_TRACKER_INTERACTION_EXTENSION_NAME "XR_HTCX_vive_tracker_interaction"
 typedef struct XrViveTrackerPathsHTCX {
     XrStructureType       type;
@@ -3452,7 +3451,7 @@ typedef struct XrSystemColorSpacePropertiesFB {
 } XrSystemColorSpacePropertiesFB;
 
 typedef XrResult (XRAPI_PTR *PFN_xrEnumerateColorSpacesFB)(XrSession session, uint32_t colorSpaceCapacityInput, uint32_t* colorSpaceCountOutput, XrColorSpaceFB* colorSpaces);
-typedef XrResult (XRAPI_PTR *PFN_xrSetColorSpaceFB)(XrSession session, const XrColorSpaceFB colorSpace);
+typedef XrResult (XRAPI_PTR *PFN_xrSetColorSpaceFB)(XrSession session, const XrColorSpaceFB colorspace);
 
 #ifndef XR_NO_PROTOTYPES
 #ifdef XR_EXTENSION_PROTOTYPES
@@ -3464,7 +3463,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrEnumerateColorSpacesFB(
 
 XRAPI_ATTR XrResult XRAPI_CALL xrSetColorSpaceFB(
     XrSession                                   session,
-    const XrColorSpaceFB                        colorSpace);
+    const XrColorSpaceFB                        colorspace);
 #endif /* XR_EXTENSION_PROTOTYPES */
 #endif /* !XR_NO_PROTOTYPES */
 
@@ -3757,9 +3756,9 @@ typedef struct XrFoveationLevelProfileCreateInfoFB {
 
 
 #define XR_FB_keyboard_tracking 1
-#define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB 128
 #define XR_FB_keyboard_tracking_SPEC_VERSION 1
 #define XR_FB_KEYBOARD_TRACKING_EXTENSION_NAME "XR_FB_keyboard_tracking"
+#define XR_MAX_KEYBOARD_TRACKING_NAME_SIZE_FB 128
 typedef XrFlags64 XrKeyboardTrackingFlagsFB;
 
 // Flag bits for XrKeyboardTrackingFlagsFB
@@ -3894,9 +3893,9 @@ XRAPI_ATTR XrResult XRAPI_CALL xrTriangleMeshEndVertexBufferUpdateFB(
 XR_DEFINE_HANDLE(XrPassthroughFB)
 XR_DEFINE_HANDLE(XrPassthroughLayerFB)
 XR_DEFINE_HANDLE(XrGeometryInstanceFB)
-#define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256
 #define XR_FB_passthrough_SPEC_VERSION    3
 #define XR_FB_PASSTHROUGH_EXTENSION_NAME  "XR_FB_passthrough"
+#define XR_PASSTHROUGH_COLOR_MAP_MONO_SIZE_FB 256
 
 typedef enum XrPassthroughLayerPurposeFB {
     XR_PASSTHROUGH_LAYER_PURPOSE_RECONSTRUCTION_FB = 0,
@@ -4085,9 +4084,9 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGeometryInstanceSetTransformFB(
 #define XR_NULL_RENDER_MODEL_KEY_FB 0
 
 XR_DEFINE_ATOM(XrRenderModelKeyFB)
-#define XR_MAX_RENDER_MODEL_NAME_SIZE_FB  64
 #define XR_FB_render_model_SPEC_VERSION   4
 #define XR_FB_RENDER_MODEL_EXTENSION_NAME "XR_FB_render_model"
+#define XR_MAX_RENDER_MODEL_NAME_SIZE_FB  64
 typedef XrFlags64 XrRenderModelFlagsFB;
 
 // Flag bits for XrRenderModelFlagsFB
@@ -4244,7 +4243,7 @@ typedef struct XrMarkerSpaceCreateInfoVARJO {
 
 typedef XrResult  (XRAPI_PTR *PFN_xrSetMarkerTrackingVARJO)(XrSession session, XrBool32  enabled);
 typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingTimeoutVARJO)(XrSession session, uint64_t markerId, XrDuration timeout);
-typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingPredictionVARJO)(XrSession session, uint64_t markerId, XrBool32 enable);
+typedef XrResult (XRAPI_PTR *PFN_xrSetMarkerTrackingPredictionVARJO)(XrSession session, uint64_t markerId, XrBool32 enabled);
 typedef XrResult (XRAPI_PTR *PFN_xrGetMarkerSizeVARJO)(XrSession session, uint64_t markerId, XrExtent2Df* size);
 typedef XrResult (XRAPI_PTR *PFN_xrCreateMarkerSpaceVARJO)(XrSession session, const XrMarkerSpaceCreateInfoVARJO* createInfo, XrSpace* space);
 
@@ -4262,7 +4261,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingTimeoutVARJO(
 XRAPI_ATTR XrResult XRAPI_CALL xrSetMarkerTrackingPredictionVARJO(
     XrSession                                   session,
     uint64_t                                    markerId,
-    XrBool32                                    enable);
+    XrBool32                                    enabled);
 
 XRAPI_ATTR XrResult XRAPI_CALL xrGetMarkerSizeVARJO(
     XrSession                                   session,
@@ -5239,31 +5238,6 @@ typedef struct XrLocalDimmingFrameEndInfoMETA {
 
 
 
-#define XR_META_passthrough_preferences 1
-#define XR_META_passthrough_preferences_SPEC_VERSION 1
-#define XR_META_PASSTHROUGH_PREFERENCES_EXTENSION_NAME "XR_META_passthrough_preferences"
-typedef XrFlags64 XrPassthroughPreferenceFlagsMETA;
-
-// Flag bits for XrPassthroughPreferenceFlagsMETA
-static const XrPassthroughPreferenceFlagsMETA XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META = 0x00000001;
-
-typedef struct XrPassthroughPreferencesMETA {
-    XrStructureType                     type;
-    const void* XR_MAY_ALIAS            next;
-    XrPassthroughPreferenceFlagsMETA    flags;
-} XrPassthroughPreferencesMETA;
-
-typedef XrResult (XRAPI_PTR *PFN_xrGetPassthroughPreferencesMETA)(XrSession session, XrPassthroughPreferencesMETA* preferences);
-
-#ifndef XR_NO_PROTOTYPES
-#ifdef XR_EXTENSION_PROTOTYPES
-XRAPI_ATTR XrResult XRAPI_CALL xrGetPassthroughPreferencesMETA(
-    XrSession                                   session,
-    XrPassthroughPreferencesMETA*               preferences);
-#endif /* XR_EXTENSION_PROTOTYPES */
-#endif /* !XR_NO_PROTOTYPES */
-
-
 #define XR_META_virtual_keyboard 1
 XR_DEFINE_HANDLE(XrVirtualKeyboardMETA)
 #define XR_MAX_VIRTUAL_KEYBOARD_COMMIT_TEXT_SIZE_META 3992
@@ -5960,7 +5934,7 @@ XRAPI_ATTR XrResult XRAPI_CALL xrApplyForceFeedbackCurlMNDX(
 
 
 #define XR_BD_controller_interaction 1
-#define XR_BD_controller_interaction_SPEC_VERSION 2
+#define XR_BD_controller_interaction_SPEC_VERSION 1
 #define XR_BD_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_BD_controller_interaction"
 
 
@@ -6154,11 +6128,6 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetPlanePolygonBufferEXT(
 #define XR_OPPO_controller_interaction_SPEC_VERSION 1
 #define XR_OPPO_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_OPPO_controller_interaction"
 
-
-#define XR_YVR_controller_interaction 1
-#define XR_YVR_controller_interaction_SPEC_VERSION 1
-#define XR_YVR_CONTROLLER_INTERACTION_EXTENSION_NAME "XR_YVR_controller_interaction"
-
 #ifdef __cplusplus
 }
 #endif

+ 6 - 7
thirdparty/openxr/include/openxr/openxr_platform.h

@@ -491,15 +491,14 @@ XRAPI_ATTR XrResult XRAPI_CALL xrGetVulkanGraphicsRequirements2KHR(
 #define XR_MNDX_egl_enable 1
 #define XR_MNDX_egl_enable_SPEC_VERSION   1
 #define XR_MNDX_EGL_ENABLE_EXTENSION_NAME "XR_MNDX_egl_enable"
-typedef PFN_xrVoidFunction (*PFN_xrEglGetProcAddressMNDX)(const char *name);
 // XrGraphicsBindingEGLMNDX extends XrSessionCreateInfo
 typedef struct XrGraphicsBindingEGLMNDX {
-    XrStructureType                type;
-    const void* XR_MAY_ALIAS       next;
-    PFN_xrEglGetProcAddressMNDX    getProcAddress;
-    EGLDisplay                     display;
-    EGLConfig                      config;
-    EGLContext                     context;
+    XrStructureType             type;
+    const void* XR_MAY_ALIAS    next;
+    PFNEGLGETPROCADDRESSPROC    getProcAddress;
+    EGLDisplay                  display;
+    EGLConfig                   config;
+    EGLContext                  context;
 } XrGraphicsBindingEGLMNDX;
 
 #endif /* XR_USE_PLATFORM_EGL */

+ 0 - 13
thirdparty/openxr/include/openxr/openxr_reflection.h

@@ -386,7 +386,6 @@ XR_ENUM_STR(XrResult);
     _(XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB, 1000209002) \
     _(XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB, 1000212000) \
     _(XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META, 1000216000) \
-    _(XR_TYPE_PASSTHROUGH_PREFERENCES_META, 1000217000) \
     _(XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META, 1000219001) \
     _(XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META, 1000219002) \
     _(XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META, 1000219003) \
@@ -1270,9 +1269,6 @@ XR_ENUM_STR(XrResult);
     _(XR_COMPOSITION_LAYER_SETTINGS_NORMAL_SHARPENING_BIT_FB, 0x00000004) \
     _(XR_COMPOSITION_LAYER_SETTINGS_QUALITY_SHARPENING_BIT_FB, 0x00000008) \
 
-#define XR_LIST_BITS_XrPassthroughPreferenceFlagsMETA(_) \
-    _(XR_PASSTHROUGH_PREFERENCE_DEFAULT_TO_ACTIVE_BIT_META, 0x00000001) \
-
 #define XR_LIST_BITS_XrVirtualKeyboardInputStateFlagsMETA(_) \
     _(XR_VIRTUAL_KEYBOARD_INPUT_STATE_PRESSED_BIT_META, 0x00000001) \
 
@@ -3592,12 +3588,6 @@ XR_ENUM_STR(XrResult);
     _(next) \
     _(localDimmingMode) \
 
-/// Calls your macro with the name of each member of XrPassthroughPreferencesMETA, in order.
-#define XR_LIST_STRUCT_XrPassthroughPreferencesMETA(_) \
-    _(type) \
-    _(next) \
-    _(flags) \
-
 /// Calls your macro with the name of each member of XrSystemVirtualKeyboardPropertiesMETA, in order.
 #define XR_LIST_STRUCT_XrSystemVirtualKeyboardPropertiesMETA(_) \
     _(type) \
@@ -4237,7 +4227,6 @@ XR_ENUM_STR(XrResult);
     _(XrDevicePcmSampleRateStateFB, XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB) \
     _(XrCompositionLayerDepthTestFB, XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB) \
     _(XrLocalDimmingFrameEndInfoMETA, XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META) \
-    _(XrPassthroughPreferencesMETA, XR_TYPE_PASSTHROUGH_PREFERENCES_META) \
     _(XrSystemVirtualKeyboardPropertiesMETA, XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META) \
     _(XrVirtualKeyboardCreateInfoMETA, XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META) \
     _(XrVirtualKeyboardSpaceCreateInfoMETA, XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META) \
@@ -4567,7 +4556,6 @@ XR_ENUM_STR(XrResult);
     _(XR_FB_haptic_pcm, 210) \
     _(XR_FB_composition_layer_depth_test, 213) \
     _(XR_META_local_dimming, 217) \
-    _(XR_META_passthrough_preferences, 218) \
     _(XR_META_virtual_keyboard, 220) \
     _(XR_OCULUS_external_camera, 227) \
     _(XR_META_vulkan_swapchain_create_info, 228) \
@@ -4588,7 +4576,6 @@ XR_ENUM_STR(XrResult);
     _(XR_EXT_hand_tracking_data_source, 429) \
     _(XR_EXT_plane_detection, 430) \
     _(XR_OPPO_controller_interaction, 454) \
-    _(XR_YVR_controller_interaction, 498) \
 
 
 #endif

+ 0 - 1
thirdparty/openxr/include/openxr/openxr_reflection_structs.h

@@ -268,7 +268,6 @@ This file contains expansion macros (X Macros) for OpenXR structures.
     _avail(XrDevicePcmSampleRateStateFB, XR_TYPE_DEVICE_PCM_SAMPLE_RATE_STATE_FB) \
     _avail(XrCompositionLayerDepthTestFB, XR_TYPE_COMPOSITION_LAYER_DEPTH_TEST_FB) \
     _avail(XrLocalDimmingFrameEndInfoMETA, XR_TYPE_LOCAL_DIMMING_FRAME_END_INFO_META) \
-    _avail(XrPassthroughPreferencesMETA, XR_TYPE_PASSTHROUGH_PREFERENCES_META) \
     _avail(XrSystemVirtualKeyboardPropertiesMETA, XR_TYPE_SYSTEM_VIRTUAL_KEYBOARD_PROPERTIES_META) \
     _avail(XrVirtualKeyboardCreateInfoMETA, XR_TYPE_VIRTUAL_KEYBOARD_CREATE_INFO_META) \
     _avail(XrVirtualKeyboardSpaceCreateInfoMETA, XR_TYPE_VIRTUAL_KEYBOARD_SPACE_CREATE_INFO_META) \

+ 15 - 69
thirdparty/openxr/src/common/platform_utils.hpp

@@ -37,44 +37,6 @@
 #include "common_config.h"
 #endif  // OPENXR_HAVE_COMMON_CONFIG
 
-#if defined(__x86_64__) && defined(__ILP32__)
-#define XR_ARCH_ABI "x32"
-#elif defined(_M_X64) || defined(__x86_64__)
-#define XR_ARCH_ABI "x86_64"
-#elif defined(_M_IX86) || defined(__i386__) || defined(_X86_)
-#define XR_ARCH_ABI "i686"
-#elif (defined(__aarch64__) && defined(__LP64__)) || defined(_M_ARM64)
-#define XR_ARCH_ABI "aarch64"
-#elif (defined(__ARM_ARCH) && __ARM_ARCH >= 7 && (defined(__ARM_PCS_VFP) || defined(__ANDROID__))) || defined(_M_ARM)
-#define XR_ARCH_ABI "armv7a-vfp"
-#elif defined(__ARM_ARCH_5TE__)
-#define XR_ARCH_ABI "armv5te"
-#elif defined(__mips64)
-#define XR_ARCH_ABI "mips64"
-#elif defined(__mips)
-#define XR_ARCH_ABI "mips"
-#elif defined(__powerpc64__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
-#define XR_ARCH_ABI "ppc64"
-#elif defined(__powerpc__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
-#define XR_ARCH_ABI "ppc64el"
-#elif defined(__s390x__) || defined(__zarch__)
-#define XR_ARCH_ABI "s390x"
-#elif defined(__hppa__)
-#define XR_ARCH_ABI "hppa"
-#elif defined(__alpha__)
-#define XR_ARCH_ABI "alpha"
-#elif defined(__ia64__) || defined(_M_IA64)
-#define XR_ARCH_ABI "ia64"
-#elif defined(__m68k__)
-#define XR_ARCH_ABI "m68k"
-#elif defined(__riscv_xlen) && (__riscv_xlen == 64)
-#define XR_ARCH_ABI "riscv64"
-#elif defined(__sparc__) && defined(__arch64__)
-#define XR_ARCH_ABI "sparc64"
-#else
-#error "No architecture string known!"
-#endif
-
 // Consumers of this file must ensure this function is implemented. For example, the loader will implement this function so that it
 // can route messages through the loader's logging system.
 void LogPlatformUtilsError(const std::string& message);
@@ -85,7 +47,6 @@ void LogPlatformUtilsError(const std::string& message);
 #include <unistd.h>
 #include <fcntl.h>
 #include <iostream>
-#include <sys/stat.h>
 
 namespace detail {
 
@@ -111,31 +72,6 @@ static inline char* ImplGetSecureEnv(const char* name) {
 }  // namespace detail
 
 #endif  // defined(XR_OS_LINUX) || defined(XR_OS_APPLE)
-
-#if defined(XR_OS_ANDROID) || defined(XR_OS_APPLE)
-
-#include <sys/stat.h>
-
-namespace detail {
-
-static inline bool ImplTryRuntimeFilename(const char* rt_dir_prefix, uint16_t major_version, std::string& file_name) {
-    auto decorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime." XR_ARCH_ABI ".json";
-    auto undecorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime.json";
-
-    struct stat buf {};
-    if (0 == stat(decorated_path.c_str(), &buf)) {
-        file_name = decorated_path;
-        return true;
-    }
-    if (0 == stat(undecorated_path.c_str(), &buf)) {
-        file_name = undecorated_path;
-        return true;
-    }
-    return false;
-}
-
-}  // namespace detail
-#endif  // defined(XR_OS_ANDROID) || defined(XR_OS_APPLE)
 #if defined(XR_OS_LINUX)
 
 static inline std::string PlatformUtilsGetEnv(const char* name) {
@@ -194,8 +130,15 @@ static inline bool PlatformUtilsSetEnv(const char* name, const char* value) {
     return (result == 0);
 }
 
+// Prefix for the Apple global runtime JSON file name
+static const std::string rt_dir_prefix = "/usr/local/share/openxr/";
+static const std::string rt_filename = "/active_runtime.json";
+
 static inline bool PlatformGetGlobalRuntimeFileName(uint16_t major_version, std::string& file_name) {
-    return detail::ImplTryRuntimeFilename("/usr/local/share/openxr/", major_version, file_name);
+    file_name = rt_dir_prefix;
+    file_name += std::to_string(major_version);
+    file_name += rt_filename;
+    return true;
 }
 
 #elif defined(XR_OS_WINDOWS)
@@ -368,19 +311,22 @@ static inline bool PlatformUtilsSetEnv(const char* /* name */, const char* /* va
     return false;
 }
 
+#include <sys/stat.h>
+
 // Intended to be only used as a fallback on Android, with a more open, "native" technique used in most cases
 static inline bool PlatformGetGlobalRuntimeFileName(uint16_t major_version, std::string& file_name) {
     // Prefix for the runtime JSON file name
     static const char* rt_dir_prefixes[] = {"/product", "/odm", "/oem", "/vendor", "/system"};
-
+    static const std::string rt_filename = "/active_runtime.json";
     static const std::string subdir = "/etc/openxr/";
     for (const auto prefix : rt_dir_prefixes) {
-        const std::string rt_dir_prefix = prefix + subdir;
-        if (detail::ImplTryRuntimeFilename(rt_dir_prefix.c_str(), major_version, file_name)) {
+        auto path = prefix + subdir + std::to_string(major_version) + rt_filename;
+        struct stat buf;
+        if (0 == stat(path.c_str(), &buf)) {
+            file_name = path;
             return true;
         }
     }
-
     return false;
 }
 #else  // Not Linux, Apple, nor Windows

+ 2 - 4
thirdparty/openxr/src/common/xr_dependencies.h

@@ -76,10 +76,7 @@
 #include "wayland-client.h"
 #endif  // XR_USE_PLATFORM_WAYLAND
 
-#ifdef XR_USE_PLATFORM_EGL
-#include <EGL/egl.h>
-#endif  // XR_USE_PLATFORM_EGL
-
+#ifdef XR_USE_GRAPHICS_API_OPENGL
 #if defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB)
 #ifdef Success
 #undef Success
@@ -93,3 +90,4 @@
 #undef None
 #endif  // None
 #endif  // defined(XR_USE_PLATFORM_XLIB) || defined(XR_USE_PLATFORM_XCB)
+#endif  // XR_USE_GRAPHICS_API_OPENGL

+ 8 - 12
thirdparty/openxr/src/common/xr_linear.h

@@ -1,5 +1,5 @@
-// Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2016, Oculus VR, LLC.
+// Copyright (c) 2017 The Khronos Group Inc.
+// Copyright (c) 2016 Oculus VR, LLC.
 //
 // SPDX-License-Identifier: Apache-2.0
 //
@@ -23,17 +23,15 @@
 
 #include <openxr/openxr.h>
 
-/* REUSE-IgnoreStart */
-/* The following has copyright notices that duplicate the header above */
-
 /*
 ================================================================================================
 
-Description  : Vector, matrix and quaternion math.
-Orig. Author : J.M.P. van Waveren
-Orig. Date   : 12/10/2016
-Language     : C99
-Copyright    : Copyright (c) 2016 Oculus VR, LLC. All Rights reserved.
+Description     :       Vector, matrix and quaternion math.
+Author          :       J.M.P. van Waveren
+Date            :       12/10/2016
+Language        :       C99
+Format          :       Indent 4 spaces - no tabs.
+Copyright       :       Copyright (c) 2016 Oculus VR, LLC. All Rights reserved.
 
 
 DESCRIPTION
@@ -147,8 +145,6 @@ inline static float XrRcpSqrt(const float x) {
     return rcp;
 }
 
-inline static float XrVector2f_Length(const XrVector2f* v) { return sqrtf(v->x * v->x + v->y * v->y); }
-
 inline static void XrVector3f_Set(XrVector3f* v, const float value) {
     v->x = value;
     v->y = value;

+ 14 - 16
thirdparty/openxr/src/loader/api_layer_interface.cpp

@@ -237,23 +237,21 @@ XrResult ApiLayerInterface::LoadApiLayers(const std::string& openxr_command, uin
         for (const auto& layer_name : enabled_explicit_api_layer_names) {
             bool found_this_layer = false;
 
-            if (layers_already_found.count(layer_name) > 0) {
-                found_this_layer = true;
-            } else {
-                for (auto it = explicit_layer_manifest_files.begin(); it != explicit_layer_manifest_files.end();) {
-                    bool erased_layer_manifest_file = false;
-
-                    if (layer_name == (*it)->LayerName()) {
-                        found_this_layer = true;
-                        layers_already_found.insert(layer_name);
-                        enabled_layer_manifest_files_in_init_order.push_back(std::move(*it));
-                        it = explicit_layer_manifest_files.erase(it);
-                        erased_layer_manifest_file = true;
-                    }
+            for (auto it = explicit_layer_manifest_files.begin(); it != explicit_layer_manifest_files.end();) {
+                bool erased_layer_manifest_file = false;
+
+                if (layers_already_found.count(layer_name) > 0) {
+                    found_this_layer = true;
+                } else if (layer_name == (*it)->LayerName()) {
+                    found_this_layer = true;
+                    layers_already_found.insert(layer_name);
+                    enabled_layer_manifest_files_in_init_order.push_back(std::move(*it));
+                    it = explicit_layer_manifest_files.erase(it);
+                    erased_layer_manifest_file = true;
+                }
 
-                    if (!erased_layer_manifest_file) {
-                        it++;
-                    }
+                if (!erased_layer_manifest_file) {
+                    it++;
                 }
             }
 

+ 1 - 1
thirdparty/openxr/src/loader/loader_core.cpp

@@ -19,7 +19,7 @@
 #include "loader_logger.hpp"
 #include "loader_platform.hpp"
 #include "runtime_interface.hpp"
-#include "xr_generated_dispatch_table_core.h"
+#include "xr_generated_dispatch_table.h"
 #include "xr_generated_loader.hpp"
 
 #include <openxr/openxr.h>

+ 1 - 1
thirdparty/openxr/src/loader/loader_instance.cpp

@@ -18,7 +18,7 @@
 #include "loader_interfaces.h"
 #include "loader_logger.hpp"
 #include "runtime_interface.hpp"
-#include "xr_generated_dispatch_table_core.h"
+#include "xr_generated_dispatch_table.h"
 #include "xr_generated_loader.hpp"
 
 #include <openxr/openxr.h>

+ 26 - 51
thirdparty/openxr/src/loader/manifest_file.cpp

@@ -274,45 +274,16 @@ static std::string GetXDGEnvAbsolute(const char *name, const char *fallback_path
     return fallback_paths;
 }
 
-/// @param rt_dir_prefix Directory prefix with a trailing slash
-static bool FindEitherActiveRuntimeFilename(const char *prefix_desc, const std::string &rt_dir_prefix, uint16_t major_version,
-                                            std::string &out) {
-    {
-        std::ostringstream oss;
-        oss << "Looking for active_runtime." XR_ARCH_ABI ".json or active_runtime.json in ";
-        oss << prefix_desc;
-        oss << ": ";
-        oss << rt_dir_prefix;
-
-        LoaderLogger::LogInfoMessage("", oss.str());
-    }
-    {
-        auto decorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime." XR_ARCH_ABI ".json";
-
-        if (FileSysUtilsPathExists(decorated_path)) {
-            out = decorated_path;
-            return true;
-        }
-    }
-    {
-        auto undecorated_path = rt_dir_prefix + std::to_string(major_version) + "/active_runtime.json";
-
-        if (FileSysUtilsPathExists(undecorated_path)) {
-            out = undecorated_path;
-            return true;
-        }
-    }
-    return false;
-}
 // Return the first instance of relative_path occurring in an XDG config dir according to standard
 // precedence order.
-static bool FindXDGConfigFile(const char *relative_dir, uint16_t major_version, std::string &out) {
-    const std::string message{"Looking for active_runtime." XR_ARCH_ABI ".json or active_runtime.json"};
-    std::string dir_prefix = GetXDGEnvHome("XDG_CONFIG_HOME", ".config");
-    if (!dir_prefix.empty()) {
-        dir_prefix += "/";
-        dir_prefix += relative_dir;
-        if (FindEitherActiveRuntimeFilename("XDG_CONFIG_HOME", dir_prefix, major_version, out)) {
+static bool FindXDGConfigFile(const std::string &relative_path, std::string &out) {
+    out = GetXDGEnvHome("XDG_CONFIG_HOME", ".config");
+    if (!out.empty()) {
+        out += "/";
+        out += relative_path;
+
+        LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in XDG_CONFIG_HOME: " + out);
+        if (FileSysUtilsPathExists(out)) {
             return true;
         }
     }
@@ -323,26 +294,29 @@ static bool FindXDGConfigFile(const char *relative_dir, uint16_t major_version,
         if (path.empty()) {
             continue;
         }
-        dir_prefix = std::move(path);
-        dir_prefix += "/";
-        dir_prefix += relative_dir;
-        if (FindEitherActiveRuntimeFilename("an entry of XDG_CONFIG_DIRS", dir_prefix, major_version, out)) {
+        out = path;
+        out += "/";
+        out += relative_path;
+        LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in an entry of XDG_CONFIG_DIRS: " + out);
+        if (FileSysUtilsPathExists(out)) {
             return true;
         }
     }
 
-    dir_prefix = SYSCONFDIR;
-    dir_prefix += "/";
-    dir_prefix += relative_dir;
-    if (FindEitherActiveRuntimeFilename("compiled-in SYSCONFDIR", dir_prefix, major_version, out)) {
+    out = SYSCONFDIR;
+    out += "/";
+    out += relative_path;
+    LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in compiled-in SYSCONFDIR: " + out);
+    if (FileSysUtilsPathExists(out)) {
         return true;
     }
 
 #if defined(EXTRASYSCONFDIR)
-    dir_prefix = EXTRASYSCONFDIR;
-    dir_prefix += "/";
-    dir_prefix += relative_dir;
-    if (FindEitherActiveRuntimeFilename("compiled-in EXTRASYSCONFDIR", dir_prefix, major_version, out)) {
+    out = EXTRASYSCONFDIR;
+    out += "/";
+    out += relative_path;
+    LoaderLogger::LogInfoMessage("", "Looking for " + relative_path + " in compiled-in EXTRASYSCONFDIR: " + out);
+    if (FileSysUtilsPathExists(out)) {
         return true;
     }
 #endif
@@ -658,8 +632,9 @@ XrResult RuntimeManifestFile::FindManifestFiles(std::vector<std::unique_ptr<Runt
         LoaderLogger::LogInfoMessage("",
                                      "RuntimeManifestFile::FindManifestFiles - using registry-specified runtime file " + filename);
 #elif defined(XR_OS_LINUX)
-
-        if (!FindXDGConfigFile("openxr/", XR_VERSION_MAJOR(XR_CURRENT_API_VERSION), filename)) {
+        const std::string relative_path =
+            "openxr/" + std::to_string(XR_VERSION_MAJOR(XR_CURRENT_API_VERSION)) + "/active_runtime.json";
+        if (!FindXDGConfigFile(relative_path, filename)) {
             LoaderLogger::LogErrorMessage(
                 "", "RuntimeManifestFile::FindManifestFiles - failed to determine active runtime file path for this environment");
             return XR_ERROR_RUNTIME_UNAVAILABLE;

+ 26 - 19
thirdparty/openxr/src/loader/runtime_interface.cpp

@@ -13,7 +13,7 @@
 #include "loader_interfaces.h"
 #include "loader_logger.hpp"
 #include "loader_platform.hpp"
-#include "xr_generated_dispatch_table_core.h"
+#include "xr_generated_dispatch_table.h"
 
 #include <openxr/openxr.h>
 
@@ -29,10 +29,6 @@
 #include "android_utilities.h"
 #include <android/asset_manager_jni.h>
 #include <json/value.h>
-
-// Needed for the loader init struct
-#include <xr_dependencies.h>
-#include <openxr/openxr_platform.h>
 #endif  // XR_USE_PLATFORM_ANDROID
 
 #ifdef XR_KHR_LOADER_INIT_SUPPORT
@@ -109,22 +105,33 @@ XrResult LoaderInitData::initialize(const XrLoaderInitInfoBaseHeaderKHR* info) {
     if (cast_info->applicationContext == nullptr) {
         return XR_ERROR_VALIDATION_FAILURE;
     }
-
-    // Copy and store the JVM pointer and Android Context, ensuring the JVM is initialised.
     _data = *cast_info;
+    jni::init((jni::JavaVM*)_data.applicationVM);
     _data.next = nullptr;
-    jni::init(static_cast<jni::JavaVM*>(_data.applicationVM));
-    const jni::Object context = jni::Object{static_cast<jni::jobject>(_data.applicationContext)};
-
-    // Retrieve a reference to the Android AssetManager.
-    const auto assetManager = context.call<jni::Object>("getAssets()Landroid/content/res/AssetManager;");
-    _android_asset_manager = AAssetManager_fromJava(jni::env(), assetManager.getHandle());
-
-    // Retrieve the path to the native libraries.
-    const auto applicationContext = context.call<jni::Object>("getApplicationContext()Landroid/content/Context;");
-    const auto applicationInfo = context.call<jni::Object>("getApplicationInfo()Landroid/content/pm/ApplicationInfo;");
-    _native_library_path = applicationInfo.get<std::string>("nativeLibraryDir");
-
+    JNIEnv* Env;
+    ((jni::JavaVM*)(cast_info->applicationVM))->AttachCurrentThread(&Env, nullptr);
+    const jclass contextClass = Env->GetObjectClass((jobject)_data.applicationContext);
+
+    const jmethodID getAssetsMethod = Env->GetMethodID(contextClass, "getAssets", "()Landroid/content/res/AssetManager;");
+    const jobject AssetManagerObject = Env->CallObjectMethod((jobject)_data.applicationContext, getAssetsMethod);
+    _android_asset_manager = AAssetManager_fromJava(Env, AssetManagerObject);
+
+    const jmethodID getApplicationContextMethod =
+        Env->GetMethodID(contextClass, "getApplicationContext", "()Landroid/content/Context;");
+    const jobject contextObject = Env->CallObjectMethod((jobject)_data.applicationContext, getApplicationContextMethod);
+    const jmethodID getApplicationInfoMethod =
+        Env->GetMethodID(contextClass, "getApplicationInfo", "()Landroid/content/pm/ApplicationInfo;");
+    const jobject applicationInfoObject = Env->CallObjectMethod(contextObject, getApplicationInfoMethod);
+    const jfieldID nativeLibraryDirField =
+        Env->GetFieldID(Env->GetObjectClass(applicationInfoObject), "nativeLibraryDir", "Ljava/lang/String;");
+    const jobject nativeLibraryDirObject = Env->GetObjectField(applicationInfoObject, nativeLibraryDirField);
+    const jmethodID getBytesMethod =
+        Env->GetMethodID(Env->GetObjectClass(nativeLibraryDirObject), "getBytes", "(Ljava/lang/String;)[B");
+    const auto bytesObject =
+        static_cast<jbyteArray>(Env->CallObjectMethod(nativeLibraryDirObject, getBytesMethod, Env->NewStringUTF("UTF-8")));
+    const size_t length = Env->GetArrayLength(bytesObject);
+    const jbyte* const bytes = Env->GetByteArrayElements(bytesObject, nullptr);
+    _native_library_path = std::string(reinterpret_cast<const char*>(bytes), length);
     _initialized = true;
     return XR_SUCCESS;
 }

+ 1 - 1
thirdparty/openxr/src/loader/xr_generated_loader.cpp

@@ -36,7 +36,7 @@
 #include "loader_logger.hpp"
 #include "loader_platform.hpp"
 #include "runtime_interface.hpp"
-#include "xr_generated_dispatch_table_core.h"
+#include "xr_generated_dispatch_table.h"
 
 #include "xr_dependencies.h"
 #include <openxr/openxr.h>

+ 5 - 7
thirdparty/openxr/src/xr_generated_dispatch_table.c

@@ -1,9 +1,7 @@
 // Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2017-2019, Valve Corporation
-// Copyright (c) 2017-2019, LunarG, Inc.
-
+// Copyright (c) 2017-2019 Valve Corporation
+// Copyright (c) 2017-2019 LunarG, Inc.
 // SPDX-License-Identifier: Apache-2.0 OR MIT
-
 // *********** THIS FILE IS GENERATED - DO NOT EDIT ***********
 //     See utility_source_generator.py for modifications
 // ************************************************************
@@ -31,6 +29,9 @@
 
 #include <time.h>
 #include "xr_generated_dispatch_table.h"
+#include "xr_dependencies.h"
+#include <openxr/openxr.h>
+#include <openxr/openxr_platform.h>
 
 
 #ifdef __cplusplus
@@ -403,9 +404,6 @@ void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,
     // ---- XR_FB_haptic_pcm extension commands
     (get_inst_proc_addr(instance, "xrGetDeviceSampleRateFB", (PFN_xrVoidFunction*)&table->GetDeviceSampleRateFB));
 
-    // ---- XR_META_passthrough_preferences extension commands
-    (get_inst_proc_addr(instance, "xrGetPassthroughPreferencesMETA", (PFN_xrVoidFunction*)&table->GetPassthroughPreferencesMETA));
-
     // ---- XR_META_virtual_keyboard extension commands
     (get_inst_proc_addr(instance, "xrCreateVirtualKeyboardMETA", (PFN_xrVoidFunction*)&table->CreateVirtualKeyboardMETA));
     (get_inst_proc_addr(instance, "xrDestroyVirtualKeyboardMETA", (PFN_xrVoidFunction*)&table->DestroyVirtualKeyboardMETA));

+ 2 - 8
thirdparty/openxr/src/xr_generated_dispatch_table.h

@@ -1,9 +1,7 @@
 // Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2017-2019, Valve Corporation
-// Copyright (c) 2017-2019, LunarG, Inc.
-
+// Copyright (c) 2017-2019 Valve Corporation
+// Copyright (c) 2017-2019 LunarG, Inc.
 // SPDX-License-Identifier: Apache-2.0 OR MIT
-
 // *********** THIS FILE IS GENERATED - DO NOT EDIT ***********
 //     See utility_source_generator.py for modifications
 // ************************************************************
@@ -30,7 +28,6 @@
 //
 
 #pragma once
-
 #include "xr_dependencies.h"
 #include <openxr/openxr.h>
 #include <openxr/openxr_platform.h>
@@ -409,9 +406,6 @@ struct XrGeneratedDispatchTable {
     // ---- XR_FB_haptic_pcm extension commands
     PFN_xrGetDeviceSampleRateFB GetDeviceSampleRateFB;
 
-    // ---- XR_META_passthrough_preferences extension commands
-    PFN_xrGetPassthroughPreferencesMETA GetPassthroughPreferencesMETA;
-
     // ---- XR_META_virtual_keyboard extension commands
     PFN_xrCreateVirtualKeyboardMETA CreateVirtualKeyboardMETA;
     PFN_xrDestroyVirtualKeyboardMETA DestroyVirtualKeyboardMETA;

+ 0 - 112
thirdparty/openxr/src/xr_generated_dispatch_table_core.c

@@ -1,112 +0,0 @@
-// Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2017-2019, Valve Corporation
-// Copyright (c) 2017-2019, LunarG, Inc.
-
-// SPDX-License-Identifier: Apache-2.0 OR MIT
-
-// *********** THIS FILE IS GENERATED - DO NOT EDIT ***********
-//     See utility_source_generator.py for modifications
-// ************************************************************
-
-// Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2017-2019 Valve Corporation
-// Copyright (c) 2017-2019 LunarG, Inc.
-//
-// SPDX-License-Identifier: Apache-2.0
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Author: Mark Young <[email protected]>
-//
-
-#include "xr_generated_dispatch_table_core.h"
-
-
-#ifdef __cplusplus
-extern "C" { 
-#endif
-// Helper function to populate an instance dispatch table
-void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,
-                                      XrInstance instance,
-                                      PFN_xrGetInstanceProcAddr get_inst_proc_addr) {
-
-    // ---- Core 1.0 commands
-    table->GetInstanceProcAddr = get_inst_proc_addr;
-    (get_inst_proc_addr(instance, "xrCreateInstance", (PFN_xrVoidFunction*)&table->CreateInstance));
-    (get_inst_proc_addr(instance, "xrDestroyInstance", (PFN_xrVoidFunction*)&table->DestroyInstance));
-    (get_inst_proc_addr(instance, "xrGetInstanceProperties", (PFN_xrVoidFunction*)&table->GetInstanceProperties));
-    (get_inst_proc_addr(instance, "xrPollEvent", (PFN_xrVoidFunction*)&table->PollEvent));
-    (get_inst_proc_addr(instance, "xrResultToString", (PFN_xrVoidFunction*)&table->ResultToString));
-    (get_inst_proc_addr(instance, "xrStructureTypeToString", (PFN_xrVoidFunction*)&table->StructureTypeToString));
-    (get_inst_proc_addr(instance, "xrGetSystem", (PFN_xrVoidFunction*)&table->GetSystem));
-    (get_inst_proc_addr(instance, "xrGetSystemProperties", (PFN_xrVoidFunction*)&table->GetSystemProperties));
-    (get_inst_proc_addr(instance, "xrEnumerateEnvironmentBlendModes", (PFN_xrVoidFunction*)&table->EnumerateEnvironmentBlendModes));
-    (get_inst_proc_addr(instance, "xrCreateSession", (PFN_xrVoidFunction*)&table->CreateSession));
-    (get_inst_proc_addr(instance, "xrDestroySession", (PFN_xrVoidFunction*)&table->DestroySession));
-    (get_inst_proc_addr(instance, "xrEnumerateReferenceSpaces", (PFN_xrVoidFunction*)&table->EnumerateReferenceSpaces));
-    (get_inst_proc_addr(instance, "xrCreateReferenceSpace", (PFN_xrVoidFunction*)&table->CreateReferenceSpace));
-    (get_inst_proc_addr(instance, "xrGetReferenceSpaceBoundsRect", (PFN_xrVoidFunction*)&table->GetReferenceSpaceBoundsRect));
-    (get_inst_proc_addr(instance, "xrCreateActionSpace", (PFN_xrVoidFunction*)&table->CreateActionSpace));
-    (get_inst_proc_addr(instance, "xrLocateSpace", (PFN_xrVoidFunction*)&table->LocateSpace));
-    (get_inst_proc_addr(instance, "xrDestroySpace", (PFN_xrVoidFunction*)&table->DestroySpace));
-    (get_inst_proc_addr(instance, "xrEnumerateViewConfigurations", (PFN_xrVoidFunction*)&table->EnumerateViewConfigurations));
-    (get_inst_proc_addr(instance, "xrGetViewConfigurationProperties", (PFN_xrVoidFunction*)&table->GetViewConfigurationProperties));
-    (get_inst_proc_addr(instance, "xrEnumerateViewConfigurationViews", (PFN_xrVoidFunction*)&table->EnumerateViewConfigurationViews));
-    (get_inst_proc_addr(instance, "xrEnumerateSwapchainFormats", (PFN_xrVoidFunction*)&table->EnumerateSwapchainFormats));
-    (get_inst_proc_addr(instance, "xrCreateSwapchain", (PFN_xrVoidFunction*)&table->CreateSwapchain));
-    (get_inst_proc_addr(instance, "xrDestroySwapchain", (PFN_xrVoidFunction*)&table->DestroySwapchain));
-    (get_inst_proc_addr(instance, "xrEnumerateSwapchainImages", (PFN_xrVoidFunction*)&table->EnumerateSwapchainImages));
-    (get_inst_proc_addr(instance, "xrAcquireSwapchainImage", (PFN_xrVoidFunction*)&table->AcquireSwapchainImage));
-    (get_inst_proc_addr(instance, "xrWaitSwapchainImage", (PFN_xrVoidFunction*)&table->WaitSwapchainImage));
-    (get_inst_proc_addr(instance, "xrReleaseSwapchainImage", (PFN_xrVoidFunction*)&table->ReleaseSwapchainImage));
-    (get_inst_proc_addr(instance, "xrBeginSession", (PFN_xrVoidFunction*)&table->BeginSession));
-    (get_inst_proc_addr(instance, "xrEndSession", (PFN_xrVoidFunction*)&table->EndSession));
-    (get_inst_proc_addr(instance, "xrRequestExitSession", (PFN_xrVoidFunction*)&table->RequestExitSession));
-    (get_inst_proc_addr(instance, "xrWaitFrame", (PFN_xrVoidFunction*)&table->WaitFrame));
-    (get_inst_proc_addr(instance, "xrBeginFrame", (PFN_xrVoidFunction*)&table->BeginFrame));
-    (get_inst_proc_addr(instance, "xrEndFrame", (PFN_xrVoidFunction*)&table->EndFrame));
-    (get_inst_proc_addr(instance, "xrLocateViews", (PFN_xrVoidFunction*)&table->LocateViews));
-    (get_inst_proc_addr(instance, "xrStringToPath", (PFN_xrVoidFunction*)&table->StringToPath));
-    (get_inst_proc_addr(instance, "xrPathToString", (PFN_xrVoidFunction*)&table->PathToString));
-    (get_inst_proc_addr(instance, "xrCreateActionSet", (PFN_xrVoidFunction*)&table->CreateActionSet));
-    (get_inst_proc_addr(instance, "xrDestroyActionSet", (PFN_xrVoidFunction*)&table->DestroyActionSet));
-    (get_inst_proc_addr(instance, "xrCreateAction", (PFN_xrVoidFunction*)&table->CreateAction));
-    (get_inst_proc_addr(instance, "xrDestroyAction", (PFN_xrVoidFunction*)&table->DestroyAction));
-    (get_inst_proc_addr(instance, "xrSuggestInteractionProfileBindings", (PFN_xrVoidFunction*)&table->SuggestInteractionProfileBindings));
-    (get_inst_proc_addr(instance, "xrAttachSessionActionSets", (PFN_xrVoidFunction*)&table->AttachSessionActionSets));
-    (get_inst_proc_addr(instance, "xrGetCurrentInteractionProfile", (PFN_xrVoidFunction*)&table->GetCurrentInteractionProfile));
-    (get_inst_proc_addr(instance, "xrGetActionStateBoolean", (PFN_xrVoidFunction*)&table->GetActionStateBoolean));
-    (get_inst_proc_addr(instance, "xrGetActionStateFloat", (PFN_xrVoidFunction*)&table->GetActionStateFloat));
-    (get_inst_proc_addr(instance, "xrGetActionStateVector2f", (PFN_xrVoidFunction*)&table->GetActionStateVector2f));
-    (get_inst_proc_addr(instance, "xrGetActionStatePose", (PFN_xrVoidFunction*)&table->GetActionStatePose));
-    (get_inst_proc_addr(instance, "xrSyncActions", (PFN_xrVoidFunction*)&table->SyncActions));
-    (get_inst_proc_addr(instance, "xrEnumerateBoundSourcesForAction", (PFN_xrVoidFunction*)&table->EnumerateBoundSourcesForAction));
-    (get_inst_proc_addr(instance, "xrGetInputSourceLocalizedName", (PFN_xrVoidFunction*)&table->GetInputSourceLocalizedName));
-    (get_inst_proc_addr(instance, "xrApplyHapticFeedback", (PFN_xrVoidFunction*)&table->ApplyHapticFeedback));
-    (get_inst_proc_addr(instance, "xrStopHapticFeedback", (PFN_xrVoidFunction*)&table->StopHapticFeedback));
-
-    // ---- XR_EXT_debug_utils extension commands
-    (get_inst_proc_addr(instance, "xrSetDebugUtilsObjectNameEXT", (PFN_xrVoidFunction*)&table->SetDebugUtilsObjectNameEXT));
-    (get_inst_proc_addr(instance, "xrCreateDebugUtilsMessengerEXT", (PFN_xrVoidFunction*)&table->CreateDebugUtilsMessengerEXT));
-    (get_inst_proc_addr(instance, "xrDestroyDebugUtilsMessengerEXT", (PFN_xrVoidFunction*)&table->DestroyDebugUtilsMessengerEXT));
-    (get_inst_proc_addr(instance, "xrSubmitDebugUtilsMessageEXT", (PFN_xrVoidFunction*)&table->SubmitDebugUtilsMessageEXT));
-    (get_inst_proc_addr(instance, "xrSessionBeginDebugUtilsLabelRegionEXT", (PFN_xrVoidFunction*)&table->SessionBeginDebugUtilsLabelRegionEXT));
-    (get_inst_proc_addr(instance, "xrSessionEndDebugUtilsLabelRegionEXT", (PFN_xrVoidFunction*)&table->SessionEndDebugUtilsLabelRegionEXT));
-    (get_inst_proc_addr(instance, "xrSessionInsertDebugUtilsLabelEXT", (PFN_xrVoidFunction*)&table->SessionInsertDebugUtilsLabelEXT));
-}
-
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-

+ 0 - 119
thirdparty/openxr/src/xr_generated_dispatch_table_core.h

@@ -1,119 +0,0 @@
-// Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2017-2019, Valve Corporation
-// Copyright (c) 2017-2019, LunarG, Inc.
-
-// SPDX-License-Identifier: Apache-2.0 OR MIT
-
-// *********** THIS FILE IS GENERATED - DO NOT EDIT ***********
-//     See utility_source_generator.py for modifications
-// ************************************************************
-
-// Copyright (c) 2017-2023, The Khronos Group Inc.
-// Copyright (c) 2017-2019 Valve Corporation
-// Copyright (c) 2017-2019 LunarG, Inc.
-//
-// SPDX-License-Identifier: Apache-2.0
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Author: Mark Young <[email protected]>
-//
-
-#pragma once
-
-#include <openxr/openxr.h>
-
-
-#ifdef __cplusplus
-extern "C" { 
-#endif
-// Generated dispatch table
-struct XrGeneratedDispatchTable {
-
-    // ---- Core 1.0 commands
-    PFN_xrGetInstanceProcAddr GetInstanceProcAddr;
-    PFN_xrEnumerateApiLayerProperties EnumerateApiLayerProperties;
-    PFN_xrEnumerateInstanceExtensionProperties EnumerateInstanceExtensionProperties;
-    PFN_xrCreateInstance CreateInstance;
-    PFN_xrDestroyInstance DestroyInstance;
-    PFN_xrGetInstanceProperties GetInstanceProperties;
-    PFN_xrPollEvent PollEvent;
-    PFN_xrResultToString ResultToString;
-    PFN_xrStructureTypeToString StructureTypeToString;
-    PFN_xrGetSystem GetSystem;
-    PFN_xrGetSystemProperties GetSystemProperties;
-    PFN_xrEnumerateEnvironmentBlendModes EnumerateEnvironmentBlendModes;
-    PFN_xrCreateSession CreateSession;
-    PFN_xrDestroySession DestroySession;
-    PFN_xrEnumerateReferenceSpaces EnumerateReferenceSpaces;
-    PFN_xrCreateReferenceSpace CreateReferenceSpace;
-    PFN_xrGetReferenceSpaceBoundsRect GetReferenceSpaceBoundsRect;
-    PFN_xrCreateActionSpace CreateActionSpace;
-    PFN_xrLocateSpace LocateSpace;
-    PFN_xrDestroySpace DestroySpace;
-    PFN_xrEnumerateViewConfigurations EnumerateViewConfigurations;
-    PFN_xrGetViewConfigurationProperties GetViewConfigurationProperties;
-    PFN_xrEnumerateViewConfigurationViews EnumerateViewConfigurationViews;
-    PFN_xrEnumerateSwapchainFormats EnumerateSwapchainFormats;
-    PFN_xrCreateSwapchain CreateSwapchain;
-    PFN_xrDestroySwapchain DestroySwapchain;
-    PFN_xrEnumerateSwapchainImages EnumerateSwapchainImages;
-    PFN_xrAcquireSwapchainImage AcquireSwapchainImage;
-    PFN_xrWaitSwapchainImage WaitSwapchainImage;
-    PFN_xrReleaseSwapchainImage ReleaseSwapchainImage;
-    PFN_xrBeginSession BeginSession;
-    PFN_xrEndSession EndSession;
-    PFN_xrRequestExitSession RequestExitSession;
-    PFN_xrWaitFrame WaitFrame;
-    PFN_xrBeginFrame BeginFrame;
-    PFN_xrEndFrame EndFrame;
-    PFN_xrLocateViews LocateViews;
-    PFN_xrStringToPath StringToPath;
-    PFN_xrPathToString PathToString;
-    PFN_xrCreateActionSet CreateActionSet;
-    PFN_xrDestroyActionSet DestroyActionSet;
-    PFN_xrCreateAction CreateAction;
-    PFN_xrDestroyAction DestroyAction;
-    PFN_xrSuggestInteractionProfileBindings SuggestInteractionProfileBindings;
-    PFN_xrAttachSessionActionSets AttachSessionActionSets;
-    PFN_xrGetCurrentInteractionProfile GetCurrentInteractionProfile;
-    PFN_xrGetActionStateBoolean GetActionStateBoolean;
-    PFN_xrGetActionStateFloat GetActionStateFloat;
-    PFN_xrGetActionStateVector2f GetActionStateVector2f;
-    PFN_xrGetActionStatePose GetActionStatePose;
-    PFN_xrSyncActions SyncActions;
-    PFN_xrEnumerateBoundSourcesForAction EnumerateBoundSourcesForAction;
-    PFN_xrGetInputSourceLocalizedName GetInputSourceLocalizedName;
-    PFN_xrApplyHapticFeedback ApplyHapticFeedback;
-    PFN_xrStopHapticFeedback StopHapticFeedback;
-
-    // ---- XR_EXT_debug_utils extension commands
-    PFN_xrSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
-    PFN_xrCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
-    PFN_xrDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT;
-    PFN_xrSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT;
-    PFN_xrSessionBeginDebugUtilsLabelRegionEXT SessionBeginDebugUtilsLabelRegionEXT;
-    PFN_xrSessionEndDebugUtilsLabelRegionEXT SessionEndDebugUtilsLabelRegionEXT;
-    PFN_xrSessionInsertDebugUtilsLabelEXT SessionInsertDebugUtilsLabelEXT;
-};
-
-
-// Prototype for dispatch table helper function
-void GeneratedXrPopulateDispatchTable(struct XrGeneratedDispatchTable *table,
-                                      XrInstance instance,
-                                      PFN_xrGetInstanceProcAddr get_inst_proc_addr);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-