Repository: godot
Issue: Vulkan Driver doesn't work on drivers that lack cubemap array support, such as iOS simulator and 1st-gen iPad Pro
Labels: bug,platform:ios,topic:rendering,confirmed,crash

### Godot version

4.0 stable

### System information

Mac OS Monterey (12.6), Vulkan API 1.2.231, iOS 16.2 Simulator (iPhone 14 Pro), Intel chip CPU

### Issue description

When trying to export an empty game to run in the Xcode simulator, it gives an error:

```
USER ERROR: Condition "!_start_success" is true. Returning: false
USER ERROR: Unable to create DisplayServer, all display drivers failed.
USER ERROR: Failed to create Vulkan window.
```

Should that be normal? Since on my Desktop running the application it works normally


full log:

```
2023-03-02 08:15:14.046921-0300 EmptyProject40stableMobile[21879:415340] Metal GPU Frame Capture Enabled
2023-03-02 08:15:14.047283-0300 EmptyProject40stableMobile[21879:415340] Metal API Validation Enabled
*********** main.m
running app main
2023-03-02 08:15:14.164637-0300 EmptyProject40stableMobile[21879:415340] [SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named "(no name)")
2023-03-02 08:15:14.164846-0300 EmptyProject40stableMobile[21879:415340] [SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named "(no name)")
Path: /Users/gustavomaciel/Library/Developer/CoreSimulator/Devices/91040C82-2B49-40F9-8FB2-E8BEE67EE6B6/data/Containers/Bundle/Application/17A2E2CE-D93E-4B79-9907-8D6B2912F4BB/EmptyProject40stableMobile.app
godot_ios /Users/gustavomaciel/Library/Developer/CoreSimulator/Devices/91040C82-2B49-40F9-8FB2-E8BEE67EE6B6/data/Containers/Bundle/Application/17A2E2CE-D93E-4B79-9907-8D6B2912F4BB/EmptyProject40stableMobile.app/EmptyProject40stableMobile
cwd /Users/gustavomaciel/Library/Developer/CoreSimulator/Devices/91040C82-2B49-40F9-8FB2-E8BEE67EE6B6/data/Containers/Bundle/Application/17A2E2CE-D93E-4B79-9907-8D6B2912F4BB/EmptyProject40stableMobile.app
os created
setup 0
******** setting up keyboard input view
******** adding observer for keyboard show/hide
2023-03-02 08:15:14.336630-0300 EmptyProject40stableMobile[21879:415340] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x6000016581c0> F8BB1C28-BAE8-11D6-9C31-00039315CD46
start animation!
2023-03-02 08:15:14.398352-0300 EmptyProject40stableMobile[21879:415340] USER ERROR: AudioOutputUnitStart failed, code: -50
2023-03-02 08:15:14.398488-0300 EmptyProject40stableMobile[21879:415340]    at: start (drivers/coreaudio/audio_driver_coreaudio.cpp:251)
USER ERROR: AudioOutputUnitStart failed, code: -50
   at: start (drivers/coreaudio/audio_driver_coreaudio.cpp:251)
2023-03-02 08:15:14.403985-0300 EmptyProject40stableMobile[21879:415340] Godot Engine v4.0.stable.official.92bee43ad - https://godotengine.org
Godot Engine v4.0.stable.official.92bee43ad - https://godotengine.org
[mvk-info] MoltenVK version 1.2.0, supporting Vulkan version 1.2.231.
	The following 82 Vulkan extensions are supported:
		VK_KHR_16bit_storage v1
		VK_KHR_8bit_storage v1
		VK_KHR_bind_memory2 v1
		VK_KHR_buffer_device_address v1
		VK_KHR_create_renderpass2 v1
		VK_KHR_dedicated_allocation v3
		VK_KHR_depth_stencil_resolve v1
		VK_KHR_descriptor_update_template v1
		VK_KHR_device_group v4
		VK_KHR_device_group_creation v1
		VK_KHR_driver_properties v1
		VK_KHR_dynamic_rendering v1
		VK_KHR_external_fence v1
		VK_KHR_external_fence_capabilities v1
		VK_KHR_external_memory v1
		VK_KHR_external_memory_capabilities v1
		VK_KHR_external_semaphore v1
		VK_KHR_external_semaphore_capabilities v1
		VK_KHR_fragment_shader_barycentric v1
		VK_KHR_get_memory_requirements2 v1
		VK_KHR_get_physical_device_properties2 v2
		VK_KHR_get_surface_capabilities2 v1
		VK_KHR_imageless_framebuffer v1
		VK_KHR_image_format_list v1
		VK_KHR_maintenance1 v2
		VK_KHR_maintenance2 v1
		VK_KHR_maintenance3 v1
		VK_KHR_multiview v1
		VK_KHR_portability_subset v1
		VK_KHR_push_descriptor v2
		VK_KHR_relaxed_block_layout v1
		VK_KHR_sampler_mirror_clamp_to_edge v3
		VK_KHR_sampler_ycbcr_conversion v14
		VK_KHR_separate_depth_stencil_layouts v1
		VK_KHR_shader_draw_parameters v1
		VK_KHR_shader_float_controls v4
		VK_KHR_shader_float16_int8 v1
		VK_KHR_shader_subgroup_extended_types v1
		VK_KHR_spirv_1_4 v1
		VK_KHR_storage_buffer_storage_class v1
		VK_KHR_surface v25
		VK_KHR_swapchain v70
		VK_KHR_swapchain_mutable_format v1
		VK_KHR_timeline_semaphore v2
		VK_KHR_uniform_buffer_standard_layout v1
		VK_KHR_variable_pointers v1
		VK_EXT_buffer_device_address v2
		VK_EXT_debug_marker v4
		VK_EXT_debug_report v10
		VK_EXT_debug_utils v2
		VK_EXT_descriptor_indexing v2
		VK_EXT_fragment_shader_interlock v1
		VK_EXT_host_query_reset v1
		VK_EXT_image_robustness v1
		VK_EXT_inline_uniform_block v1
		VK_EXT_memory_budget v1
		VK_EXT_metal_objects v1
		VK_EXT_metal_surface v1
		VK_EXT_post_depth_coverage v1
		VK_EXT_private_data v1
		VK_EXT_robustness2 v1
		VK_EXT_sample_locations v1
		VK_EXT_scalar_block_layout v1
		VK_EXT_separate_stencil_usage v1
		VK_EXT_shader_stencil_export v1
		VK_EXT_shader_viewport_index_layer v1
		VK_EXT_subgroup_size_control v2
		VK_EXT_swapchain_colorspace v4
		VK_EXT_texel_buffer_alignment v1
		VK_EXT_texture_compression_astc_hdr v1
		VK_EXT_vertex_attribute_divisor v3
		VK_AMD_gpu_shader_half_float v2
		VK_AMD_negative_viewport_height v1
		VK_AMD_shader_image_load_store_lod v1
		VK_AMD_shader_trinary_minmax v1
		VK_IMG_format_pvrtc v1
		VK_INTEL_shader_integer_functions2 v1
		VK_GOOGLE_display_timing v1
		VK_MVK_ios_surface v3
		VK_MVK_moltenvk v36
		VK_NV_fragment_shader_barycentric v1
		VK_NV_glsl_shader v1
[mvk-info] GPU device:
		model: Apple iOS simulator GPU
		type: Integrated
		vendorID: 0x106b
		deviceID: 0x100203ea
		pipelineCacheUUID: 000027D8-1002-03EA-0000-000000000000
	supports the following Metal Versions, GPU's and Feature Sets:
		Metal Shading Language 3.0
		GPU Family Apple 2
		GPU Family Apple 1
		GPU Family Common 1
		iOS GPU Family 2 v5
		iOS GPU Family 2 v4
		iOS GPU Family 2 v3
		iOS GPU Family 2 v2
		iOS GPU Family 2 v1
		iOS GPU Family 1 v5
		iOS GPU Family 1 v4
		iOS GPU Family 1 v3
		iOS GPU Family 1 v2
		iOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.2.0, as requested by app, with the following 3 Vulkan extensions enabled:
		VK_KHR_get_physical_device_properties2 v2
		VK_KHR_surface v25
		VK_MVK_ios_surface v3
2023-03-02 08:15:14.659866-0300 EmptyProject40stableMobile[21879:415340] Vulkan API 1.2.231 - Forward Mobile - Using Vulkan Device #0: Apple - Apple iOS simulator GPU
Vulkan API 1.2.231 - Forward Mobile - Using Vulkan Device #0: Apple - Apple iOS simulator GPU
2023-03-02 08:15:14.660182-0300 EmptyProject40stableMobile[21879:415340] USER ERROR: Your GPU doesn't support image cube arrays which are required to use the Vulkan-based renderers in Godot.
2023-03-02 08:15:14.660330-0300 EmptyProject40stableMobile[21879:415340]    at: _create_physical_device (drivers/vulkan/vulkan_context.cpp:1336)
USER ERROR: Your GPU doesn't support image cube arrays which are required to use the Vulkan-based renderers in Godot.
   at: _create_physical_device (drivers/vulkan/vulkan_context.cpp:1336)
2023-03-02 08:15:14.660551-0300 EmptyProject40stableMobile[21879:415340] USER ERROR: Condition "err != OK" is true. Returning: ERR_CANT_CREATE
2023-03-02 08:15:14.660689-0300 EmptyProject40stableMobile[21879:415340]    at: _window_create (drivers/vulkan/vulkan_context.cpp:1681)
USER ERROR: Condition "err != OK" is true. Returning: ERR_CANT_CREATE
   at: _window_create (drivers/vulkan/vulkan_context.cpp:1681)
2023-03-02 08:15:14.661281-0300 EmptyProject40stableMobile[21879:415340] USER ERROR: Failed to create Vulkan window.
2023-03-02 08:15:14.661446-0300 EmptyProject40stableMobile[21879:415340]    at: DisplayServerIOS (platform/ios/display_server_ios.mm:84)
USER ERROR: Failed to create Vulkan window.
   at: DisplayServerIOS (platform/ios/display_server_ios.mm:84)
2023-03-02 08:15:14.661595-0300 EmptyProject40stableMobile[21879:415340] USER ERROR: Unable to create DisplayServer, all display drivers failed.
2023-03-02 08:15:14.661731-0300 EmptyProject40stableMobile[21879:415340]    at: setup2 (main/main.cpp:2013)
USER ERROR: Unable to create DisplayServer, all display drivers failed.
   at: setup2 (main/main.cpp:2013)
2023-03-02 08:15:14.665820-0300 EmptyProject40stableMobile[21879:415340] USER ERROR: Condition "!_start_success" is true. Returning: false
2023-03-02 08:15:14.665977-0300 EmptyProject40stableMobile[21879:415340]    at: start (main/main.cpp:2381)
USER ERROR: Condition "!_start_success" is true. Returning: false
   at: start (main/main.cpp:2381)
```

### Steps to reproduce

Just create a Empty project as "Mobile" Render option and try to export

### Minimal reproduction project

[EmptyProject40stableMobile.zip](https://github.com/godotengine/godot/files/10870698/EmptyProject40stableMobile.zip)