Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenXR project crashes on Windows when using OpenXR 1.0.29 or later, compiled with mingw-gcc #83674

Closed
ModularNucleus opened this issue Oct 20, 2023 · 19 comments · Fixed by #83984

Comments

@ModularNucleus
Copy link

ModularNucleus commented Oct 20, 2023

Godot version

v4.2.beta2.official [f8818f8], v4.2.beta1.official [b137180], v4.1.1.stable.official [bd6af8e]

System information

Windows 10, Vulkan Forward+, Nvidia RTX3060Ti Game-ready driver 537.58, SteamVR 2.0.6, Windows Mixed Reality for SteamVR 1.3.73, HP Reverb G2 headset.

Issue description

When running a simple OpenXR project in Godot 4.2 Beta 2, a project that runs fine 4.1.1 Stable and 4.2 Beta 1, the project silently fails to launch and no OpenXR / Vulkan version info is printed to the console.

In the included videos I demonstrate the issue by running the project directly from the manager, but the behaviour is the same when run from the editor.

Perhaps the issue is related to the recent update to OpenXR-SDK 1.0.30 when using Windows Mixed Reality (it seems the update was mainly tested on Meta / Android)? Version 1.0.31 has just been released and mentions some compatibility improvements.

In Beta 1:

Godot.4.2.beta.1.-.steamvr_openxr_wmr.test.mp4

In Beta 2:

Godot.4.2.beta.2.-.steamvr_openxr_wmr.test.mp4

Steps to reproduce

  • Run the attached MRP in Godot 4.1.1 Stable or 4.2 Beta 1.

  • Observe that the project launches and runs correctly.

  • Run the MRP in Beta 2.

  • Observe that the project fails to launch.

  • Observe that no OpenXR / Vulkan info is printed to the console.

Minimal reproduction project

Beta 2 OpenXR Test.zip

@YuriSizov
Copy link
Contributor

YuriSizov commented Oct 20, 2023

I don't have an XR device. But simply opening this project with 4.2 beta2 does work. It takes a bit longer than I would expect (probably just the first time), but it happens. And there is some issue logged:

ERROR: Parameter "profile_def" is null.
   at: _update_interaction_profile (modules/openxr/editor/openxr_interaction_profile_editor.cpp:261)

Though this may be just about me not having an XR device.

Specs:

  • Windows 11
  • Godot v4.2.beta2 - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3070 Ti Laptop GPU (NVIDIA; 31.0.15.3742) - 12th Gen Intel(R) Core(TM) i7-12700H (20 Threads)

Edit: Try launching Godot from the command line with the --verbose flag, which may give you some extra clues.

@akien-mga
Copy link
Member

Perhaps the issue is related to the recent update to OpenXR-SDK 1.0.30 when using Windows Mixed Reality (it seems the update was mainly tested on Meta / Android)?

To test this hypothesis, I've made a build of 4.2-beta2 with #82582 reverted. Could you test it and let me know if that solves the issue?

https://downloads.tuxfamily.org/godotengine/testing/Godot_v4.2-beta2_windows_openxr_1.0.28.zip

@ModularNucleus
Copy link
Author

@akien-mga It indeed solves the issue, so that would seem to support the hypothesis.

In custom build:

4.2.Beta.2.-.OpenXR.1.0.28.test.mp4

@Malcolmnixon
Copy link
Contributor

I can confirm using the Godot_v4.2-beta2_windows_openxr_1.0.28 fixes my memory corruption issue on:

  • Alienware M15 R7
  • Microsoft Windows 11 Home (10.0.22621 N/A Build 22621)
  • NVidia GeForce RTX 3070 TI
  • 12th Gen Intel(R) Core(TM) i7-12700H
  • Oculus App Version 57.0.0.254.153
  • Meta Quest Pro

@BastiaanOlij
Copy link
Contributor

I wonder what the source of this is as I've been using my own builds with OpenXR 10.0.30 without problems for some time now. What do we do different in our build process that would introduce this instability?

@akien-mga we should and see if the issue is fixed with OpenXR 10.0.31, we're starting to roll out extensions that require the newer OpenXR version. We can probably get away with 28 for the 4.2 release if we can't figure this out in time, but 4.3 likely will need to run a newer version of OpenXR.

@BastiaanOlij
Copy link
Contributor

Edit: Try launching Godot from the command line with the --verbose flag, which may give you some extra clues.

As @YuriSizov already mentioned, always use --verbose when diagnosing XR issues, we only output data around the startup of OpenXR if this flag is set (I should probably make that a little less strict and output some more basic info even if the flag is not set).

@ModularNucleus
Copy link
Author

ModularNucleus commented Oct 21, 2023

Edit: Try launching Godot from the command line with the --verbose flag, which may give you some extra clues.

I will keep that in mind.

This is the console output for the OpenXR 1.0.30 beta 2 version:

Details

D:\Projects\Godot>Godot_v4.2-beta2_win64_console.exe --verbose
Godot Engine v4.2.beta2.official.f8818f85e - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Native OpenGL API detected: 3.3: NVIDIA - NVIDIA GeForce RTX 3060 Ti
NVAPI: Init OK!
NVAPI: Disabled OpenGL threaded optimization successfully
Using "wintab" pen tablet driver...
Shader 'CanvasSdfShaderGLES3' SHA256: 48d6450939fd0c3882887ad90eac03fbafb9eb69d2b47aeacb0c810dc60dd60f
Shader 'SkeletonShaderGLES3' SHA256: 9d255e374ce0c426eb7722316805d5f32c26d6d6595350cdc749b0d85b075324
Shader 'ParticlesShaderGLES3' SHA256: f66b9725d7d5da6d8f73bbd5da9bd9729ec7695ff4461b1743e9809ae6131a27
Shader 'ParticlesCopyShaderGLES3' SHA256: 0051fa04202b9f23982e2ab102a167e0bbe5ad2b4e4223aa7f61a64ba82566f3
Shader 'CopyShaderGLES3' SHA256: 37e2322858e23cdbf507d3f1d183279902d89c59698e393893b0d8a6e15deca1
Shader 'CanvasShaderGLES3' SHA256: 62150a8b66c267e6b8b08a034f1a127ef33cbaf80242c2f915f5606fee19cad2
Shader 'CanvasOcclusionShaderGLES3' SHA256: cfde6a4ce32c005c5bcb401cf8552b379fc2b5d23303f299586decca5ca3f3fd
Shader 'SceneShaderGLES3' SHA256: 462e088a0eb0dc1eabf54a9fde34660df9e7313aac1f3da9bebdef47b4c82371
Shader 'SkyShaderGLES3' SHA256: 9ee4cd2240cc70fe8860b005f4a236c35d994c6c8a68f96d333d384b3c4b5a1b
Shader 'CubemapFilterShaderGLES3' SHA256: 6c1156fecfd6badbd0d56475f67e7d0d7250dfdcd4fb1f0e037c3fd86a909b74
OpenGL API 3.3.0 NVIDIA 537.58 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce RTX 3060 Ti
WASAPI: Activated output_device using IAudioClient3 interface
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: mix_rate = 48000
WASAPI: fundamental_period_frames = 480
WASAPI: min_period_frames = 480
WASAPI: max_period_frames = 480
WASAPI: selected a period frame size of 480
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 480 calculated latency: 10ms

TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 3082190442
EDITOR API HASH: 1590534062
EditorSettings: Load OK!
Scanning projects at: D:/Projects/Godot/Godot Projects
MbedTLS: Some X509 certificates could not be parsed (1 certificates skipped).
Loaded system CA certificates
EditorSettings: Save OK!
Running project: D:/Projects/Godot/Godot Projects/Beta 2 OpenXR Test
Godot Engine v4.2.beta2.official.f8818f85e - https://godotengine.org
TextServer: Added interface "Dummy"
OpenXR: Found OpenXR extension XR_KHR_vulkan_enable
OpenXR: Found OpenXR extension XR_KHR_vulkan_enable2
OpenXR: Found OpenXR extension XR_KHR_D3D11_enable
OpenXR: Found OpenXR extension XR_KHR_D3D12_enable
OpenXR: Found OpenXR extension XR_KHR_opengl_enable
OpenXR: Found OpenXR extension XR_KHR_win32_convert_performance_counter_time
OpenXR: Found OpenXR extension XR_EXT_win32_appcontainer_compatible
OpenXR: Found OpenXR extension XR_KHR_binding_modification
OpenXR: Found OpenXR extension XR_KHR_composition_layer_depth
OpenXR: Found OpenXR extension XR_KHR_visibility_mask
OpenXR: Found OpenXR extension XR_EXT_active_action_set_priority
OpenXR: Found OpenXR extension XR_EXT_dpad_binding
OpenXR: Found OpenXR extension XR_EXT_frame_composition_report
OpenXR: Found OpenXR extension XR_EXT_hand_tracking
OpenXR: Found OpenXR extension XR_EXT_hand_joints_motion_range
OpenXR: Found OpenXR extension XR_EXT_hp_mixed_reality_controller
OpenXR: Found OpenXR extension XR_EXT_palm_pose
OpenXR: Found OpenXR extension XR_FB_display_refresh_rate
OpenXR: Found OpenXR extension XR_HTC_vive_cosmos_controller_interaction
OpenXR: Found OpenXR extension XR_HTC_vive_focus3_controller_interaction
OpenXR: Found OpenXR extension XR_HTC_vive_wrist_tracker_interaction
OpenXR: Found OpenXR extension XR_MND_headless
OpenXR: Found OpenXR extension XR_VALVE_analog_threshold
OpenXR: Found OpenXR extension XR_HTCX_vive_tracker_interaction
OpenXR: Found OpenXR extension XR_EXT_debug_utils
OpenXR: Enabling extension XR_EXT_palm_pose
OpenXR: Enabling extension XR_KHR_composition_layer_depth
OpenXR: Enabling extension XR_HTC_vive_cosmos_controller_interaction
OpenXR: Enabling extension XR_HTC_vive_focus3_controller_interaction
OpenXR: Enabling extension XR_HTCX_vive_tracker_interaction
OpenXR: Enabling extension XR_FB_display_refresh_rate
OpenXR: Enabling extension XR_EXT_hp_mixed_reality_controller
OpenXR: Enabling extension XR_KHR_vulkan_enable2

It simply stops after "OpenXR: Enabling extension XR_KHR_vulkan_enable2"

This is the console output for the OpenXR 1.0.28 beta 2 version:

Details

D:\Projects\Godot>godot.windows.editor.x86_64.console.exe --verbose
Godot Engine v4.2.beta2.official.3c591f53f - https://godotengine.org
TextServer: Added interface "Dummy"
TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
Native OpenGL API detected: 3.3: NVIDIA - NVIDIA GeForce RTX 3060 Ti
NVAPI: Init OK!
NVAPI: Disabled OpenGL threaded optimization successfully
Using "wintab" pen tablet driver...
Shader 'CanvasSdfShaderGLES3' SHA256: 48d6450939fd0c3882887ad90eac03fbafb9eb69d2b47aeacb0c810dc60dd60f
Shader 'SkeletonShaderGLES3' SHA256: 9d255e374ce0c426eb7722316805d5f32c26d6d6595350cdc749b0d85b075324
Shader 'ParticlesShaderGLES3' SHA256: f66b9725d7d5da6d8f73bbd5da9bd9729ec7695ff4461b1743e9809ae6131a27
Shader 'ParticlesCopyShaderGLES3' SHA256: 0051fa04202b9f23982e2ab102a167e0bbe5ad2b4e4223aa7f61a64ba82566f3
Shader 'CopyShaderGLES3' SHA256: 37e2322858e23cdbf507d3f1d183279902d89c59698e393893b0d8a6e15deca1
Shader 'CanvasShaderGLES3' SHA256: 62150a8b66c267e6b8b08a034f1a127ef33cbaf80242c2f915f5606fee19cad2
Shader 'CanvasOcclusionShaderGLES3' SHA256: cfde6a4ce32c005c5bcb401cf8552b379fc2b5d23303f299586decca5ca3f3fd
Shader 'SceneShaderGLES3' SHA256: 462e088a0eb0dc1eabf54a9fde34660df9e7313aac1f3da9bebdef47b4c82371
Shader 'SkyShaderGLES3' SHA256: 9ee4cd2240cc70fe8860b005f4a236c35d994c6c8a68f96d333d384b3c4b5a1b
Shader 'CubemapFilterShaderGLES3' SHA256: 6c1156fecfd6badbd0d56475f67e7d0d7250dfdcd4fb1f0e037c3fd86a909b74
OpenGL API 3.3.0 NVIDIA 537.58 - Compatibility - Using Device: NVIDIA - NVIDIA GeForce RTX 3060 Ti
WASAPI: Activated output_device using IAudioClient3 interface
WASAPI: wFormatTag = 65534
WASAPI: nChannels = 2
WASAPI: nSamplesPerSec = 48000
WASAPI: nAvgBytesPerSec = 384000
WASAPI: nBlockAlign = 8
WASAPI: wBitsPerSample = 32
WASAPI: cbSize = 22
WASAPI: mix_rate = 48000
WASAPI: fundamental_period_frames = 480
WASAPI: min_period_frames = 480
WASAPI: max_period_frames = 480
WASAPI: selected a period frame size of 480
WASAPI: detected 2 channels
WASAPI: audio buffer frames: 480 calculated latency: 10ms

TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
CORE API HASH: 3082190442
EDITOR API HASH: 1590534062
EditorSettings: Load OK!
Scanning projects at: D:/Projects/Godot/Godot Projects
MbedTLS: Some X509 certificates could not be parsed (1 certificates skipped).
Loaded system CA certificates
EditorSettings: Save OK!
Running project: D:/Projects/Godot/Godot Projects/Beta 2 OpenXR Test
Godot Engine v4.2.beta2.official.3c591f53f - https://godotengine.org
TextServer: Added interface "Dummy"
OpenXR: Found OpenXR extension XR_KHR_vulkan_enable
OpenXR: Found OpenXR extension XR_KHR_vulkan_enable2
OpenXR: Found OpenXR extension XR_KHR_D3D11_enable
OpenXR: Found OpenXR extension XR_KHR_D3D12_enable
OpenXR: Found OpenXR extension XR_KHR_opengl_enable
OpenXR: Found OpenXR extension XR_KHR_win32_convert_performance_counter_time
OpenXR: Found OpenXR extension XR_EXT_win32_appcontainer_compatible
OpenXR: Found OpenXR extension XR_KHR_binding_modification
OpenXR: Found OpenXR extension XR_KHR_composition_layer_depth
OpenXR: Found OpenXR extension XR_KHR_visibility_mask
OpenXR: Found OpenXR extension XR_EXT_active_action_set_priority
OpenXR: Found OpenXR extension XR_EXT_dpad_binding
OpenXR: Found OpenXR extension XR_EXT_frame_composition_report
OpenXR: Found OpenXR extension XR_EXT_hand_tracking
OpenXR: Found OpenXR extension XR_EXT_hand_joints_motion_range
OpenXR: Found OpenXR extension XR_EXT_hp_mixed_reality_controller
OpenXR: Found OpenXR extension XR_EXT_palm_pose
OpenXR: Found OpenXR extension XR_FB_display_refresh_rate
OpenXR: Found OpenXR extension XR_HTC_vive_cosmos_controller_interaction
OpenXR: Found OpenXR extension XR_HTC_vive_focus3_controller_interaction
OpenXR: Found OpenXR extension XR_HTC_vive_wrist_tracker_interaction
OpenXR: Found OpenXR extension XR_MND_headless
OpenXR: Found OpenXR extension XR_VALVE_analog_threshold
OpenXR: Found OpenXR extension XR_HTCX_vive_tracker_interaction
OpenXR: Found OpenXR extension XR_EXT_debug_utils
OpenXR: Enabling extension XR_EXT_palm_pose
OpenXR: Enabling extension XR_KHR_composition_layer_depth
OpenXR: Enabling extension XR_HTC_vive_cosmos_controller_interaction
OpenXR: Enabling extension XR_HTC_vive_focus3_controller_interaction
OpenXR: Enabling extension XR_HTCX_vive_tracker_interaction
OpenXR: Enabling extension XR_FB_display_refresh_rate
OpenXR: Enabling extension XR_EXT_hp_mixed_reality_controller
OpenXR: Enabling extension XR_KHR_vulkan_enable2
OpenXR: Running on OpenXR runtime: SteamVR/OpenXR 2.0.6
OpenXR: Found supported view configuration XR_VIEW_CONFIGURATION_TYPE_PRIMARY_STEREO
OpenXR: Found supported view configuration view

  • width: 3240
  • height: 3240
  • sample count: 1
  • recommended render width: 3040
  • recommended render height: 2972
  • recommended render sample count: 1
    OpenXR: Found supported view configuration view
  • width: 3240
  • height: 3240
  • sample count: 1
  • recommended render width: 3040
  • recommended render height: 2972
  • recommended render sample count: 1
    OpenXR: Found environmental blend mode XR_ENVIRONMENT_BLEND_MODE_OPAQUE
    TextServer: Added interface "ICU / HarfBuzz / Graphite (Built-in)"
    OpenXR: XrGraphicsRequirementsVulkan2KHR:
  • minApiVersionSupported: 1.0.0
  • maxApiVersionSupported: 1.2.0
    Vulkan API 1.3.242 - Forward+ - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce RTX 3060 Ti
    Optional extension VK_KHR_incremental_present not found
    Optional extension VK_GOOGLE_display_timing not found
  • Vulkan Variable Rate Shading supported:
    Pipeline fragment shading rate
    Primitive fragment shading rate
    Attachment fragment shading rate, min texel size: (16, 16), max texel size: (16, 16)
  • Vulkan multiview supported:
    max view count: 32
    max instances: 134217727
  • Vulkan subgroup:
    size: 32
    min size: 32
    max size: 32
    stages: STAGE_VERTEX, STAGE_TESSELLATION_CONTROL, STAGE_TESSELLATION_EVALUATION, STAGE_GEOMETRY, STAGE_FRAGMENT, STAGE_COMPUTE, STAGE_RAYGEN_KHR, STAGE_ANY_HIT_KHR, STAGE_CLOSEST_HIT_KHR, STAGE_MISS_KHR, STAGE_INTERSECTION_KHR, STAGE_CALLABLE_KHR, STAGE_TASK_NV, STAGE_MESH_NV
    supported ops: FEATURE_BASIC, FEATURE_VOTE, FEATURE_ARITHMETIC, FEATURE_BALLOT, FEATURE_SHUFFLE, FEATURE_SHUFFLE_RELATIVE, FEATURE_CLUSTERED, FEATURE_QUAD, FEATURE_PARTITIONED_NV
    quad operations in all stages
    Startup PSO cache (3.1 MiB)
    Using "wintab" pen tablet driver...
    Creating VMA small objects pool for memory type index 1
    Shader 'CanvasSdfShaderRD' (group 0) SHA256: 2da4555da166e3fa2e34bc5bc7ff39bbe878b1459ddeb5f33fe42edd113a0f4d
    Shader 'SkeletonShaderRD' (group 0) SHA256: 6b9e0a7aa1f71e57994d8b2d2e6815c03af301e18e2d4701486f4cd29e97405e
    Shader 'SortShaderRD' (group 0) SHA256: 98720c565cf8cb2f4022b78554a01f34fb32dd7f4a2e5f5e5e1ab97278132a2d
    Shader 'ParticlesShaderRD' (group 0) SHA256: 89510620c9e4d2781a14914c1213dbbafe6f9893ce26d57371f65a2dcd5a37b5
    Shader 'ParticlesCopyShaderRD' (group 0) SHA256: 4dcc13f169089ddbc6d75b184c54c3e98f2d7bf741523fef8a817138eb19c1da
    Shader 'CanvasShaderRD' (group 0) SHA256: 4143b4698ce66f67e06f0fb8b8f7813a39660f9460b2bbda137426534886f003
    Shader 'CanvasOcclusionShaderRD' (group 0) SHA256: 227df8b9a6456251e33c505f36da0cbd4000a05d29227bf973b49774b197afdb
    Shader 'ClusterRenderShaderRD' (group 0) SHA256: 672a09dc45372af8284cded345858cad489466bc759e1161f15262c524cc3f1c
    Shader 'ClusterStoreShaderRD' (group 0) SHA256: b2063042c8b8cf654b13df64d2420602157854edaec486f20c5f8bc18f4776ac
    Shader 'ClusterDebugShaderRD' (group 0) SHA256: b03c7d2c1b71b5330821201056c515077a259f8c42d9e39145bf36a184888eea
    Shader 'SceneForwardClusteredShaderRD' (group 0) SHA256: 7088645c89a2949fa1a43a4712e834f190888be543d2b6e1bcc938b677804653
    Shader 'SceneForwardClusteredShaderRD' (group 1) SHA256: ca3295fd3ed73df4d6d3b24d76372f0b9fc221f6469ec6cc88e62127a9a3f821
    Shader 'SceneForwardClusteredShaderRD' (group 2) SHA256: 21b6898b4cbca3459e781b5354135d61c01edad9e94b3373bba0c313a6dceb1f
    Shader 'SceneForwardClusteredShaderRD' (group 3) SHA256: a83f0eab0e898b1d008d950556e4b05cc12fab3083f7dbf3d89a8c791adc5c1d
    Shader 'ResolveShaderRD' (group 0) SHA256: 49384ddea718dc4da28e5fe827b955a84101d20e5d07eca5e633c260ba6d4e90
    Shader 'TaaResolveShaderRD' (group 0) SHA256: b6cf7b762e8cf60fb5e4b7c2fc009f1529f6e80db0cc0a9ef931ad0e94666082
    Shader 'Fsr2DepthClipPassShaderRD' (group 0) SHA256: c060051a4ef6a0fd5154c8e12fe8cd98a8a8e63ac9be0d2b09b58aa753dcf495
    Shader 'Fsr2ReconstructPreviousDepthPassShaderRD' (group 0) SHA256: 776ee8664d7b419b84a4f27d29ddbcd5329fb04ab3168d9631176f42309e0f58
    Shader 'Fsr2LockPassShaderRD' (group 0) SHA256: 44ab3abcf076d258bd3fe38bafea525c71ddd175a48410975bde6a06a1bf6952
    Shader 'Fsr2AccumulatePassShaderRD' (group 0) SHA256: 51db1f43d74b159bd8ad69995d8516f18d2bf5c8d3f7816cd6cd21573f2d90e1
    Shader 'Fsr2RcasPassShaderRD' (group 0) SHA256: 300032d0d24a71b3a65c2951d426328564f518bb19f1ef8d39a381cab6cc87ed
    Shader 'Fsr2ComputeLuminancePyramidPassShaderRD' (group 0) SHA256: fcacaec243e9e6ab0f9a8923abe05ec4745500faa21d045f83e16474e43a9821
    Shader 'Fsr2AutogenReactivePassShaderRD' (group 0) SHA256: d3bca818f02507adb6caf9527244e3bdf036e396110291c37ed2b2a24a4d791d
    Shader 'Fsr2TcrAutogenPassShaderRD' (group 0) SHA256: 65c9f2476634ce0b820445295544dff7c4175e769a25882a5535e9e44303ed37
    Shader 'SsEffectsDownsampleShaderRD' (group 0) SHA256: 055e88d7f6eb9e0f8da6c58130e70d3e676878a4e945c8f2e596aa1e72fee85b
    Shader 'SsilShaderRD' (group 0) SHA256: 488d840e8d74655cb9c661fb041d951906ed2028a0f51d43d2e4dcd52acf853b
    Shader 'SsilImportanceMapShaderRD' (group 0) SHA256: 347eead47d11729e0444095f01b9c5387d745aebd47e45eb17a82a3e3e4a47b9
    Shader 'SsilBlurShaderRD' (group 0) SHA256: e9856c23b783473b55c1944e06523ba830c687f113bc9f5e27980b7094ca3ace
    Shader 'SsilInterleaveShaderRD' (group 0) SHA256: ecb805b60dcd291a6b2ef45c9c265c235c1e144cc7e5797d049286ca5a485cf0
    Shader 'SsaoShaderRD' (group 0) SHA256: 5d9b80f46c69c0d700d7db92d40ec2e9d03204747c9e3589ad8faff94e58be80
    Shader 'SsaoImportanceMapShaderRD' (group 0) SHA256: 9840a995f2583a6a23766c18fd8a161584b8081a6d171f4977c9a719708a76ff
    Shader 'SsaoBlurShaderRD' (group 0) SHA256: c91b993a755002fc08552273ce547e8deec4f86b588c44f18e30f447b60f9e08
    Shader 'SsaoInterleaveShaderRD' (group 0) SHA256: 8ec73e745560f3db2d18232101c4e47d980712b64dbd1b5151c4c083faad0d62
    Shader 'ScreenSpaceReflectionScaleShaderRD' (group 0) SHA256: dba4f9192462502cdcb0f323fb21a84ed1270b4368ba7dbf31294533db639676
    Shader 'ScreenSpaceReflectionShaderRD' (group 0) SHA256: f09e89c0d5720d4571f4f57d367bffb6ff5676ae36c765b17d33143894b9dc75
    Shader 'ScreenSpaceReflectionFilterShaderRD' (group 0) SHA256: e6dc3be1f3d8c1e08d9a402fbf92ad3c52c3b3c3b57bbec08f323409bcb392ea
    Shader 'SubsurfaceScatteringShaderRD' (group 0) SHA256: dfe039cec02ad04859eb8aec6b0a296e69f86b36a15856012091c8c469ec52de
    Shader 'SkyShaderRD' (group 0) SHA256: dc3e2524c490950b274c8670842ed04e5108850e6b15baeec800f04a51bf2531
    Shader 'VoxelGiShaderRD' (group 0) SHA256: 2b5cdda1273a60c357fe053d7c4d535a1c27c50cfc741bfb4312789e386df8dc
    Shader 'VoxelGiDebugShaderRD' (group 0) SHA256: 0cfb7708cfcb2cf6375e27ddb340b12e2288fa5783ea3cd3707f7fe9e4bc5606
    Shader 'SdfgiPreprocessShaderRD' (group 0) SHA256: d4d6726993848d12e76aee95e4bc5e722e5023ad942f11416fe669d926016ca8
    Shader 'SdfgiDirectLightShaderRD' (group 0) SHA256: cbfc6e45216786419a94b73fef9538d56e97556d1e46e7dea936b1acf587ce02
    Shader 'SdfgiIntegrateShaderRD' (group 0) SHA256: 822fc4af8c21186ee0fbf9bb2536df91645b4395ca59c31e351c28948a243922
    Shader 'GiShaderRD' (group 0) SHA256: 7fa8ea0eb00ab9b7f5df1b2d7b0c05bf7af51b30e197445383222aa14063bbb8
    Shader 'SdfgiDebugShaderRD' (group 0) SHA256: 70fca7c15e07817a5c11395a874a9834362739206041005ca9912d3c7696acef
    Shader 'SdfgiDebugProbesShaderRD' (group 0) SHA256: ad2a30f8f75708cc698ab6b1cf31342e0e4d63df616431d1b639d1f1dc3374cd
    Shader 'VolumetricFogShaderRD' (group 0) SHA256: f513e25cf6d57305b7fe835d2121eb4f7d457ea77b48abb82834b0760c36451d
    Shader 'VolumetricFogProcessShaderRD' (group 0) SHA256: e208d78942dd90e93a90bdc0ec3a1c1faa86e6b07d32c806f7747beb97726168
    Shader 'BokehDofShaderRD' (group 0) SHA256: 3ef5405c3e52c7799fd3149ff0e8391f9786ebe415e5f9354df595b081b161d4
    Shader 'CopyShaderRD' (group 0) SHA256: c72fe82c2e6bf0b2b31d489f3650875f7019311af5e1f7902da11ef63c3f6670
    Shader 'CopyToFbShaderRD' (group 0) SHA256: 071d8808c4f83ba962d4735bbdce43a7509660bfba0b4743fff3daf4a55b3f4e
    Shader 'CubeToDpShaderRD' (group 0) SHA256: 36a72391b8152dd95ce067cd621a371b944703880abf7bba25306ebf06e6ecee
    Shader 'CubemapDownsamplerShaderRD' (group 0) SHA256: 0f6c73b336c33ecee026cf6231fd5b4913ede54c27be5d2e0650734003fa2014
    Shader 'CubemapFilterShaderRD' (group 0) SHA256: daa1f8507840e5a5b93cb7e87c0f4a684b8197631071cb9e4e7eea2293bef280
    Shader 'CubemapRoughnessShaderRD' (group 0) SHA256: 6b1d40eaad996bbad18549bbe06d67c5b9fb661acfd8f987e00d6c611ce8c3d7
    Shader 'SpecularMergeShaderRD' (group 0) SHA256: 6d3fb44c69b02aa2eb6c78ad2ba737f22645386344990b9cf91d182682aaef2d
    Shader 'ShadowFrustumShaderRD' (group 0) SHA256: c5a0b09d5fe957f31b3616a177feb7aa644f494eea72f6626bed713b52596bcd
    Shader 'MotionVectorsShaderRD' (group 0) SHA256: aae06cfd6b7b38784afecddc38336db062c8cc827b083eae29cfb88cdd0fbd4f
    Shader 'LuminanceReduceShaderRD' (group 0) SHA256: bd5680efdafda3d18ed0ffb5f233cd9bbcc61deb54af5f6108e42bd44ac530d8
    Shader 'TonemapShaderRD' (group 0) SHA256: 63b9095ca8841894f9deed09ed769c839ccd2ad64107a4fd60be893e60da09f4
    Shader 'VrsShaderRD' (group 0) SHA256: 250401852177969f64eded7a0d877598e52eaa63b1eb27543c48f2f61a8adc21
    Shader 'FsrUpscaleShaderRD' (group 0) SHA256: ed7395341be9a9c52d2aa2e4e47ef30bc936687e8ebbbada0bd73adf7bb070e1
    Shader 'BlitShaderRD' (group 0) SHA256: 4cee5d78da9b45a66dd09108f6bf8ab2177b92aba5e8f6178a4041af93d857b5
    WASAPI: Activated output_device using IAudioClient3 interface
    WASAPI: wFormatTag = 65534
    WASAPI: nChannels = 2
    WASAPI: nSamplesPerSec = 48000
    WASAPI: nAvgBytesPerSec = 384000
    WASAPI: nBlockAlign = 8
    WASAPI: wBitsPerSample = 32
    WASAPI: cbSize = 22
    WASAPI: mix_rate = 48000
    WASAPI: fundamental_period_frames = 480
    WASAPI: min_period_frames = 480
    WASAPI: max_period_frames = 480
    WASAPI: selected a period frame size of 480
    WASAPI: detected 2 channels
    WASAPI: audio buffer frames: 480 calculated latency: 10ms

TextServer: Primary interface set to: "ICU / HarfBuzz / Graphite (Built-in)".
ERROR: OpenXR: Unsupported toplevel path /user/eyes_ext
at: (modules/openxr/openxr_api.cpp:200)
OpenXR: Interaction profile /interaction_profiles/bytedance/pico4_controller requires extension XR_BD_controller_interaction
OpenXR: Interaction profile /interaction_profiles/samsung/odyssey_controller requires extension XR_EXT_samsung_odyssey_controller
OpenXR: Interaction profile /interaction_profiles/huawei/controller requires extension XR_HUAWEI_controller_interaction
ERROR: OpenXR: Unsupported interaction profile /interaction_profiles/ext/eye_gaze_interaction
at: (modules/openxr/openxr_api.cpp:220)
OpenXR: Found supported reference space XR_REFERENCE_SPACE_TYPE_VIEW
OpenXR: Found supported reference space XR_REFERENCE_SPACE_TYPE_LOCAL
OpenXR: Found supported reference space XR_REFERENCE_SPACE_TYPE_STAGE
OpenXR: Found supported swapchain format VK_FORMAT_R8G8B8A8_SRGB
OpenXR: Found supported swapchain format VK_FORMAT_B8G8R8A8_SRGB
OpenXR: Found supported swapchain format VK_FORMAT_R32G32B32A32_SFLOAT
OpenXR: Found supported swapchain format VK_FORMAT_R32G32B32_SFLOAT
OpenXR: Found supported swapchain format VK_FORMAT_R16G16B16A16_SFLOAT
OpenXR: Found supported swapchain format VK_FORMAT_A2B10G10R10_UNORM_PACK32
OpenXR: Found supported swapchain format VK_FORMAT_D32_SFLOAT
OpenXR: Found supported swapchain format VK_FORMAT_D16_UNORM
OpenXR: Found supported swapchain format VK_FORMAT_D24_UNORM_S8_UINT
OpenXR: Found supported swapchain format VK_FORMAT_D32_SFLOAT_S8_UINT
XR: Primary interface set to: OpenXR
CORE API HASH: 3082190442
EDITOR API HASH: 1590534062
MbedTLS: Some X509 certificates could not be parsed (1 certificates skipped).
Loaded system CA certificates
OpenXR EVENT: session state changed to XR_SESSION_STATE_IDLE
On state idle
OpenXR EVENT: session state changed to XR_SESSION_STATE_READY
On state ready
Using color swap chain format:VK_FORMAT_R8G8B8A8_SRGB
OpenXR View pose became valid
OpenXR EVENT: session state changed to XR_SESSION_STATE_SYNCHRONIZED
On state synchronized
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/left_foot changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/right_foot changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/left_shoulder changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/right_shoulder changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/left_elbow changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/right_elbow changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/left_knee changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/right_knee changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/waist changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/chest changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/camera changed to /interaction_profiles/htc/vive_tracker_htcx
OpenXR: Interaction profile for /user/vive_tracker_htcx/role/keyboard changed to /interaction_profiles/htc/vive_tracker_htcx
OpenVR Head pose now tracking with high confidence

PS: Thanks to everone involved for their hard work and dedication towards making this the great engine that it is.

EDIT: Updated the console output for the 1.0.30 version. I think I accidentily copy-pasted some duplicate lines in there.

@akien-mga
Copy link
Member

I wonder what the source of this is as I've been using my own builds with OpenXR 10.0.30 without problems for some time now. What do we do different in our build process that would introduce this instability?

Official builds are made with mingw-gcc, and LTO. So they can have different compilation/optimization bugs than MSVC. Seems like openxr 1.0.30 added something that triggers a compiler bug.

@akien-mga
Copy link
Member

akien-mga commented Oct 21, 2023

I've made a few more builds to test whether upgrading mingw-gcc (with versions from Fedora 39 instead of Fedora 36) or OpenXR (both with Fedora 36 and 39 toolchains) helps. Could you test them and let me know if they work?

@Malcolmnixon
Copy link
Contributor

All three of those test builds crash at the same point right after the OpenXR: Enabling extension XR_KHR_vulkan_enable2.

@akien-mga
Copy link
Member

Thanks! I'll make a test build with openxr 1.0.29 tomorrow, and based on the results roll back to 1.0.28 or 1.0.29 for 4.2.

Then we can see why it crashes in newer versions and report it upstream.

@ModularNucleus
Copy link
Author

ModularNucleus commented Oct 22, 2023

All three test builds also crash right after "OpenXR: Enabling extension XR_KHR_vulkan_enable2" for me.

@akien-mga
Copy link
Member

Another test build with openxr 1.0.29, built on Fedora 36 (same as all previous 4.2 builds):

https://downloads.tuxfamily.org/godotengine/testing/Godot_v4.2-beta2_windows_openxr_1.0.29_fedora36.zip

The diff between 1.0.29 and 1.0.30 isn't big, so I don't have high hopes this version works. But it's worth testing to know if we should revert to 1.0.28 or 1.0.29.

@ModularNucleus
Copy link
Author

Unfortunately, I get the same result as with the other test builds.

@Malcolmnixon
Copy link
Contributor

Yup - same with me - the new one crashes at the same spot.

akien-mga added a commit to akien-mga/godot that referenced this issue Oct 23, 2023
Reverts godotengine#82582.
Works around godotengine#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.
@akien-mga
Copy link
Member

akien-mga commented Oct 23, 2023

I'm reverting to 1.0.28 with #83829, so this should solve the issue for 4.2 beta 3 and later.

I'll keep this issue open to further investigate why it crashes, so we can get it fixed and eventually update to a newer openxr SDK. Might not have time to look into it before the 4.2 release so I'm putting this on the 4.3 milestone.

@akien-mga akien-mga added this to the 4.3 milestone Oct 23, 2023
@akien-mga akien-mga changed the title 4.2 Beta 2: OpenXR project silently fails to run. Same project runs fine in Beta 1 and 4.1.1 Stable. OpenXR project crashes on Windows when using OpenXR 1.0.29 or later, compiled with mingw-gcc Oct 23, 2023
@akien-mga
Copy link
Member

akien-mga commented Oct 26, 2023

Could I get this build tested?

https://downloads.tuxfamily.org/godotengine/testing/Godot_v4.2-beta2_windows_openxr_1.0.31_fixed_fedora39.zip

It's upgrading to 1.0.31 again, but with a buildsystem fix. We were apparently compiling both the new and the old versions of the dispatch table introduced in 1.0.29, which is the kind of stuff that can trip up compilers/optimization. Now we only compile the new one.

Edit: I named that zip 4.2-beta2, but it's actually beta 3, copy paste mistake.

@BastiaanOlij
Copy link
Contributor

Just tested this build running all three renderers and using godot-xr-template as a testing project and runs fine.

Windows 10, AMD Ryzen 87, NVidia 4070 Ti, Running PCVR Quest Pro over Airlink

@akien-mga akien-mga modified the milestones: 4.3, 4.2 Oct 26, 2023
@ModularNucleus
Copy link
Author

The new build runs the original MRP just fine on my system.

orianbsilva pushed a commit to orianbsilva/godot that referenced this issue Nov 1, 2023
Reverts godotengine#82582.
Works around godotengine#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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants