-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Unity version
6000.3.4f1
Unity editor platform
macOS
AVPro Video edition
Core
AVPro Video version
3.3.4
Device hardware
Redmi Note 9 (MediaTek MT6769, Mali GPU) – Android 10 (SDK 29)
Which Android OS version are you using?
10
Unity Graphics API
Vulkan
Video API
media3/ExoPlayer
Texture format
BGRA
Audio output
System Direct
Any other Media Player component configuration required to reproduce the issue.
No response
Which output component(s) are you using?
Display uGUI
Any other component configuration required to reproduce the issue.
No response
The issue
Description
We are experiencing a native crash on Android devices using Mali GPUs when AVPro Video runs with Vulkan enabled.
The crash happens inside the Vulkan rendering path during video playback.
According to Google Play Console, the issue only occurs on Android 10 (SDK 29) devices with MediaTek MT6769 (Mali GPU).
The crash happens inside:
VulkanPlayerRenderBuffer::createSourceImage()
and eventually fails in the Mali driver during vkAllocateMemory.
This appears to be related to Vulkan image allocation used by AVPro Video.
Steps to Reproduce
Unfortunately we cannot provide a minimal reproduction project publicly (per repository guidelines), but the crash occurs:
1. Launch the game on affected Android 10 devices.
2. Start video playback using AVPro Video (default configuration).
3. Native crash occurs during Vulkan rendering path.
The issue disappears when Vulkan is removed from Graphics APIs and OpenGLES3 is used instead.
Additional Notes
• Only affects Android 10 devices so far.
• Appears driver-specific (Mali + MT6769).
Media information
Test video details:
- Container: MP4
- Video codec: H.264
- Audio codec: AAC
- Resolution: 1920x1080
- Duration: ~42 seconds
- Audio: Stereo
- Location: StreamingAssets/Video/Intro.mp4
- Size: 22 MB
Logcat output
[libAVProVideo2Native.so] VulkanPlayerRenderBuffer::createSourceImage()
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 4445 >>> com.example.casual.game <<<
backtrace:
#00 pc 0x00000000007baeb0 /vendor/lib64/egl/libGLES_mali.so
#01 pc 0x00000000007a552c /vendor/lib64/egl/libGLES_mali.so
#02 pc 0x0000000000070078 /data/app/~~iROxh9K1LJsJjYYek4Cs9A==/com.example.casual.game-kWkMBr6LlOePcxlMMaliog==/lib/arm64/libAVProVideo2Native.so (VulkanPlayerRenderBuffer::createSourceImage()) (BuildId: f36f5aa662bf006f33e6ef3703c215fbe4063c61)
#03 pc 0x000000000006fdc0 /data/app/~~iROxh9K1LJsJjYYek4Cs9A==/com.example.casual.game-kWkMBr6LlOePcxlMMaliog==/lib/arm64/libAVProVideo2Native.so (VulkanPlayerRenderBuffer::setSurfaceImage(AHardwareBufferPlayerSurfaceImage*)) (BuildId: f36f5aa662bf006f33e6ef3703c215fbe4063c61)
#04 pc 0x000000000006b5d0 /data/app/~~iROxh9K1LJsJjYYek4Cs9A==/com.example.casual.game-kWkMBr6LlOePcxlMMaliog==/lib/arm64/libAVProVideo2Native.so (VulkanPlayerSurface::sourceImageWorkerThreadFunction()) (BuildId: f36f5aa662bf006f33e6ef3703c215fbe4063c61)
#05 pc 0x000000000006bd7c /data/app/~~iROxh9K1LJsJjYYek4Cs9A==/com.example.casual.game-kWkMBr6LlOePcxlMMaliog==/lib/arm64/libAVProVideo2Native.so (void* std::__ndk1::__thread_proxy[abi:ne190000]<std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct>>, void (*)(std::__ndk1::shared_ptr<VulkanPlayerSurface>), std::__ndk1::shared_ptr<VulkanPlayerSurface>>>(void*)) (BuildId: f36f5aa662bf006f33e6ef3703c215fbe4063c61)
#06 pc 0x00000000000bc37c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+220)
#07 pc 0x00000000000ad600 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)