zink/loader: bring up zink on Android
First 2 commits update loader, zink and build configs to properly load Vulkan core on Android.
The next couple commits fix a bunch of bugs w.r.t external fencing.
The last commit implements a missing api required by EGL platform android.
Setup:
- use
GALLIUM_DRIVERS=zink
- install
src/gallium/targets/dri/libgallium_dri.so
aszink_dri.so
- requires root or set at build time:
setprop mesa.loader.driver.override zink
- (optional) use skiavk:
adb shell setprop debug.hwui.renderer skiavk
Test:
- games and benchmarks run normally
- low-latency stylus app using front buffer rendering runs normally
- basic cts run passes
Open issues:
-
#7210 (closed) no
GL_ARB_instanced_arrays
emulation blocks skiagl- forcing skiavk unblocks gl games and other custom gl usages
-
VK_IMAGE_LAYOUT_PRESENT_SRC_KHR
used for WSI atop external memory VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext
VUID-VkRenderPassBeginInfo-framebuffer-03214
VUID-VkRenderPassBeginInfo-framebuffer-03215
UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout
Edited by Yiwei Zhang