Huawei devices using Vulkan API crashes irregularly

We have been struggling with crashes happening exclusively on Huawei devices (various device models, various android os) for quite some time and finally identified Vulkan API to be the main culprit. Crashes stopped as soon as we shipped release without it, but sadly we saw more than 2x performance loss in all devices, so we had to go back to using Vulkan.
We are unable to reproduce this issue ourselves on any of our own Huawei devices. I sincerely hope someone in community can help us understand what could cause this crash on Huawei devices using Vulkan API based on provided symbolicated crash stack trace.

Sidenote: We also shipped a build made in 2020.2.6f1 because there are some Vulkan related fixes reported in change log, but this crash still kept coming in.

Version '2019.4.19f1 (ca5b14067cec)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a'
Build fingerprint: 'HUAWEI/JKM-LX3/HWJKM-H:9/HUAWEIJKM-L23/9.1.0.310C605:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 12248, tid: 15097, name: UnityGfxDeviceW
uid: 10187
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xfefefefefefeff86
x0 0000007990010a50 x1 ffffffffffffffff x2 0000000000003eb0 x3 0000000000000000
x4 0000000000000001 x5 0000000000000001 x6 0000007b27dc2000 x7 000000000106ac1a
x8 0000000000000026 x9 0000000000003eb0 x10 0000000000000000 x11 0000000000000000
x12 0000000000000001 x13 000000006045ff4a x14 0003a86bd5e0144e x15 0000101e7c354ac5
x16 0000007a75b5f0a0 x17 0000007b226de6b0 x18 00000000ac3b7fa9 x19 00000079e18e1ad0
x20 fefefefefefefefe x21 00000079e18e1ad0 x22 0000000000000000 x23 0000007990010a30
x24 0000007990044770 x25 00000079e18e1ad0 x26 0000000000000001 x27 000000797039aafc
x28 0000000000000038 x29 0000000000000001
sp 00000079a9b3d070 lr 0000007a74ef8810 pc 0000007a74ef8850
backtrace:
at
at
at
at
at
at
at
at __pthread_start(void*)
at __start_thread
at libunity.0x4b5850 vk::smile:ataBuffer::CreateResource()
at libunity.0x4b67b4 vk::smile:ataBuffer::BeginWrite(unsigned long, unsigned long, bool)
at libunity.0x59a360 GeometryJobTasks::ScheduleGeometryJobs(GfxDevice&, void (*)(GeometryJobData*), GeometryJobInstruction const*, unsigned int, bool)
at libunity.0x8b9b9c GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&)
at libunity.0x8c1e54 GfxDeviceWorker::RunExt(ThreadedStreamBuffer&)
at libunity.0x8b90e0 GfxDeviceWorker::RunGfxDeviceWorker(void*)
at libunity.0x34f57c Thread::RunThreadWrapper(void*)
at libc.__pthread_start
at libc.__start_thread (__start_thread:68)```

Edit: I've started a new [thread](https://discussions.unity.com/t/836687) based on new information discovered in UCD.

AFAIK those problematic devices have buggy Vulkan drivers. Unfortunately only fix would be that Unity creates some workarounds for those devices since device manufacturers are too lazy to fix their software releases. These issues are usually also visible with other Android phones that come from China (e.g. OPPO).

Yes, @kaarloew I also came to same conclusion. For now the least painful course of action for us and anyone else having similar issue would be extending UnityPlayerActivity and manually selecting graphics API. Tho it would be preferable not to force all Huawei devices to use GLES because of noticeable performance loss.