[Mesa-dev] android: add support for vulkan radv

Mauro Rossi issor.oruam at gmail.com
Sun Jul 22 08:14:56 UTC 2018

The following series adds support for vulkan radv for Android 8.1

[PATCH 1/4] radv: move vk_format_table.c to generated sources
[PATCH 2/4] radv: generate entrypoints for VK_ANDROID_native_buffer
[PATCH 3/4] android: radv: add Android.mk for vulkan.radv HAL module
[PATCH 4/4] android: radv: enable build of vulkan.radv HAL module

Tested oreo-x86_8.1.0_r41 with mesa-dev and llvm70 master on GCN 2nd gen parts,
with "hwcomposer.drm (hwc1 and hwc2) + gralloc.gbm" HALs as a Proof of Concept.

Android CTS 8.1_r7 dEQP-VK.* tests: 227442 passed, 14 failed, 0 not executed

The following Vulkan enabled apps are working:
VulkanCapsViewer, Sascha Willems demos (44 of 48 are Ok), Google tutorials,
V1 Benchmark Pro (Vulkan API), PPSSPP emulator, Breakneck, Dream League Soccer,
Olympus Rising, Score! Hero, Toy Zombies Lite, Vainglory

To test vulkan.radv HAL, surfaceflinger was modified to request BGRA format,
instead of AOSP default RGBA format, hwcomposer.drm and gralloc.gbm mainstream
branches required small changes and mesa 18.2 prime fd support in egl/android
was essential to avoid following show stopper error:
'vulkan  : vkCreateImage w/ native buffer failed: 3294895293'

All the necessary changes in the graphics stack are documented and available
here for reference (maurossi commits) and they work also for Intel anv:

frameworks/native (PoC, to be refined to use native HW pixel formats):



external/llvm70 branch (used to build libLLVM70 shared library):

Thanks to Chih-Wei Huang, Qiang Yu, Tapani P  lli , Emil Velikov,
Robert Foss, Rob Herring and Tomasz Figa for continuous help and support.

Signed-off-by: Mauro Rossi <issor.oruam at gmail.com>

More information about the mesa-dev mailing list