ash: VK_KHR_swapchain is broken on Vulkan 1.0

See https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_swapchain.html Also downstream issue in https://github.com/gfx-rs/wgpu-rs/issues/313#issuecomment-645988990 Basically, looks like Ash requests an address of vkGetPhysicalDevicePresentRectanglesKHR even when on Vulkan 1.0 instance, where it doesn’t exist.

This is a blocker for gfx/wgpu on Android today.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 26 (9 by maintainers)

Most upvoted comments

Doing the necessary steps listed above (patching winit, ndk-* versions, ndk::main, cdylib, surface/swapchain creation on Resumed, etc.) the wgpu example should also run. A few more wgpu related parts needed to adjusted as well: surface format was not supported and compatible surface needs to be changed to None (on Android presentation is always supported for all devices).

The error message

[2020-06-18T06:37:16Z ERROR gfx_backend_vulkan] [vulkan] invalid vkGetDeviceProcAddr(0x73683eb2c0, “vkGetPhysicalDevicePresentRectanglesKHR”) call

is still there and can be ignored as mentioned in my opinion.

Funny enough, touch input handling also works once drawing something on screen…

Proof: Screenshot_2020-07-14-21-31-03-225_rust example triangle

@enfipy this branch should work. Currently built around latest android-ndk, cargo apk run --example hello_triangle