godot: Android export not working just a black screen on Android versions older than 9.0
Godot version
4.0.alpha13
System information
Android 8
Issue description
Exports to Android no longer work with 4.0.alpha13. It worked fine with 4.0.alpha12. All I get now is a black screen.
Logcat:
2022-08-05 09:26:33.614 4721-4721/org.godotengine.androidtest W/linker: "/data/app/org.godotengine.androidtest-ubSVahhQcJP6DEU3VC_OFA==/lib/arm64/libc++_shared.so" unused DT entry: type 0x70000001 arg 0x0
2022-08-05 09:26:33.981 4721-4762/org.godotengine.androidtest E/vulkan: invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") call
2022-08-05 09:26:33.982 4721-4762/org.godotengine.androidtest E/vulkan: invalid vkGetInstanceProcAddr(VK_NULL_HANDLE, "vkEnumerateInstanceVersion") call
2022-08-05 09:26:34.056 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "err" is true. Returning: ERR_CANT_CREATE
2022-08-05 09:26:34.056 4721-4762/org.godotengine.androidtest E/godot: at: _update_swap_chain (drivers/vulkan/vulkan_context.cpp:1856) - Condition "err" is true. Returning: ERR_CANT_CREATE
2022-08-05 09:26:34.056 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "err != OK" is true. Returning: ERR_CANT_CREATE
2022-08-05 09:26:34.056 4721-4762/org.godotengine.androidtest E/godot: at: _window_create (drivers/vulkan/vulkan_context.cpp:1461) - Condition "err != OK" is true. Returning: ERR_CANT_CREATE
2022-08-05 09:26:35.239 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.239 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.239 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.239 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.240 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR failed with error -7.
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: at: _render_pass_create (drivers/vulkan/rendering_device_vulkan.cpp:3955) - Condition "res" is true. Returning: nullptr
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.241 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR for empty fb failed with error -7.
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: at: framebuffer_format_create_empty (drivers/vulkan/rendering_device_vulkan.cpp:4047) - Condition "res" is true. Returning: 0
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: vkCreateRenderPass2KHR for empty fb failed with error -7.
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: at: framebuffer_format_create_empty (drivers/vulkan/rendering_device_vulkan.cpp:4047) - Condition "res" is true. Returning: 0
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: USER ERROR: Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
2022-08-05 09:26:35.287 4721-4762/org.godotengine.androidtest E/godot: at: render_pipeline_create (drivers/vulkan/rendering_device_vulkan.cpp:6381) - Condition "!framebuffer_formats.has(p_framebuffer_format)" is true. Returning: RID()
The above is just the beginning of the error log, but these errors continue as long as the game’s black screen is open.
Steps to reproduce
Export a project to Android (using one-click deploy). See nothing but a black screen.
Minimal reproduction project
Any project will do, but here’s one: Test.zip
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 15 (7 by maintainers)
While Vulkan is in theory supported on Android 7.0 and later, Vulkan support on versions below Android 9.0 is considered pretty broken in general (not just among Godot developers).
The OpenGL renderer will have to be made working to get actual support for Android versions older than 9.0. This renderer is already present as of 4.0.beta4, but is currently experimental and doesn’t have a working Android context yet.