Browse Source

Merge pull request #69392 from dsnopek/openxr-quest-fix

Fix OpenXR on the Meta Quest: XR_KHR_loader_init_android is not reported as available (but it works anyway)
Rémi Verschelde 2 years ago
parent
commit
f5dbec2f73

+ 5 - 1
modules/openxr/extensions/openxr_android_extension.cpp

@@ -47,11 +47,15 @@ OpenXRAndroidExtension *OpenXRAndroidExtension::get_singleton() {
 OpenXRAndroidExtension::OpenXRAndroidExtension(OpenXRAPI *p_openxr_api) :
 OpenXRAndroidExtension::OpenXRAndroidExtension(OpenXRAPI *p_openxr_api) :
 		OpenXRExtensionWrapper(p_openxr_api) {
 		OpenXRExtensionWrapper(p_openxr_api) {
 	singleton = this;
 	singleton = this;
-	request_extensions[XR_KHR_LOADER_INIT_ANDROID_EXTENSION_NAME] = nullptr; // must be available
+	request_extensions[XR_KHR_LOADER_INIT_ANDROID_EXTENSION_NAME] = &loader_init_extension_available;
 	request_extensions[XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME] = &create_instance_extension_available;
 	request_extensions[XR_KHR_ANDROID_CREATE_INSTANCE_EXTENSION_NAME] = &create_instance_extension_available;
 }
 }
 
 
 void OpenXRAndroidExtension::on_before_instance_created() {
 void OpenXRAndroidExtension::on_before_instance_created() {
+	if (!loader_init_extension_available) {
+		print_line("OpenXR: XR_KHR_loader_init_android is not reported as available - trying to initialize anyway...");
+	}
+
 	EXT_INIT_XR_FUNC(xrInitializeLoaderKHR);
 	EXT_INIT_XR_FUNC(xrInitializeLoaderKHR);
 
 
 	JNIEnv *env = get_jni_env();
 	JNIEnv *env = get_jni_env();

+ 1 - 0
modules/openxr/extensions/openxr_android_extension.h

@@ -48,6 +48,7 @@ public:
 private:
 private:
 	static OpenXRAndroidExtension *singleton;
 	static OpenXRAndroidExtension *singleton;
 
 
+	bool loader_init_extension_available = false;
 	bool create_instance_extension_available = false;
 	bool create_instance_extension_available = false;
 
 
 	// Initialize the loader
 	// Initialize the loader