diff --git a/crates/bevy_openxr/src/openxr/features/passthrough.rs b/crates/bevy_openxr/src/openxr/features/passthrough.rs index b5065d6..79df4a2 100644 --- a/crates/bevy_openxr/src/openxr/features/passthrough.rs +++ b/crates/bevy_openxr/src/openxr/features/passthrough.rs @@ -40,18 +40,17 @@ impl Plugin for OxrPassthroughPlugin { pub fn insert_passthrough(world: &mut World) { let session = world.resource::(); - let (passthrough, passthrough_layer) = create_passthrough( + if let Ok((passthrough, passthrough_layer)) = create_passthrough( session, openxr::PassthroughFlagsFB::IS_RUNNING_AT_CREATION, openxr::PassthroughLayerPurposeFB::RECONSTRUCTION, - ) - .unwrap(); - - world - .resource_mut::() - .insert(0, Box::new(PassthroughLayer)); - world.insert_resource(passthrough); - world.insert_resource(passthrough_layer); + ) { + world + .resource_mut::() + .insert(0, Box::new(PassthroughLayer)); + world.insert_resource(passthrough); + world.insert_resource(passthrough_layer); + } } pub fn resume_passthrough( diff --git a/crates/bevy_openxr/src/openxr/graphics/vulkan.rs b/crates/bevy_openxr/src/openxr/graphics/vulkan.rs index a18f584..9d88177 100644 --- a/crates/bevy_openxr/src/openxr/graphics/vulkan.rs +++ b/crates/bevy_openxr/src/openxr/graphics/vulkan.rs @@ -115,10 +115,15 @@ unsafe impl GraphicsExt for openxr::Vulkan { ::Instance::desired_extensions(&vk_entry, VK_TARGET_VERSION_ASH, flags)?; let device_extensions = [ ash::khr::swapchain::NAME, + #[cfg(target_os = "android")] ash::khr::draw_indirect_count::NAME, ash::khr::timeline_semaphore::NAME, ash::khr::imageless_framebuffer::NAME, ash::khr::image_format_list::NAME, + #[cfg(target_os = "macos")] + ash::khr::portability_subset::NAME, + #[cfg(target_os = "macos")] + ash::ext::metal_objects::NAME, ]; let vk_instance = unsafe {