Hello,
I've gotten the "hellovulkan" example running with little fuss. Just to make sure that we are on the same page, I compiled an armeabi-v7a (I'll just call it armv7 from now) version of the lwjgl library by defining the LWJGL_BUILD_ARCH
environment variable prior to following the instructions here. I have NDK 14.1 installed and my test device is a Samsung S7.
Anyway, I copied over the relevant .so files from my SDK's armv7 NDK jniLibs directory to the "android-test" project and set the VALIDATE
variable to true. This includes stuff like libVKlayer_core_validation.so, libVkLayer_image.so, libVkLayer_object_tracker.so, and so on. Every piece of validation code seems to run without a hitch except for vkCreateDebugReportCallbackEXT
-- the item causes the following seg fault as seen in the ADB log:
--------- beginning of crash
05-03 10:47:12.451 16514 16605 F libc : Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 16605 (VKThread)
05-03 10:47:12.452 607 607 W : debuggerd: handling request: pid=16514 uid=10106 gid=10106 tid=16605
05-03 10:47:12.531 1662 1662 D CustomFrequencyManagerService: releaseDVFSLockLocked : Getting Lock type frm List : DVFS_MIN_LIMIT frequency : 1555200 uid : 1000 pid : 1662 tag : AMS_RESUME_TAIL@CPU_MIN@24
05-03 10:47:12.534 16640 16640 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-03 10:47:12.534 16640 16640 F DEBUG : Build fingerprint: 'Verizon/heroqltevzw/heroqltevzw:7.0/NRD90M/G930VVRU4BQC5:user/release-keys'
05-03 10:47:12.534 16640 16640 F DEBUG : Revision: '14'
05-03 10:47:12.534 16640 16640 F DEBUG : ABI: 'arm'
05-03 10:47:12.535 16640 16640 F DEBUG : pid: 16514, tid: 16605, name: VKThread >>> org.lwjgl.demo.android.hellovulkan <<<
05-03 10:47:12.535 9246 9355 I PlayCommon: [809] PlayEventLogger.uploadEventsImpl: Preparing logs for uploading
05-03 10:47:12.535 16640 16640 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
05-03 10:47:12.535 16640 16640 F DEBUG : r0 dc5fed04 r1 c82a777c r2 00000004 r3 00000000
05-03 10:47:12.535 9246 9355 I PlayCommon: [809] PlayEventLogger.uploadEventsImpl: No file ready to send
05-03 10:47:12.535 16640 16640 F DEBUG : r4 c843ee44 r5 c82a7ad8 r6 c82a7870 r7 c82a7830
05-03 10:47:12.535 16640 16640 F DEBUG : r8 c82a7870 r9 daa1e000 sl c82a7780 fp daa1e000
05-03 10:47:12.535 16640 16640 F DEBUG : ip c8133c65 sp c82a7760 lr e6d04a1b pc c8133c5e cpsr 200d0030
05-03 10:47:12.566 16640 16640 F DEBUG :
05-03 10:47:12.566 16640 16640 F DEBUG : backtrace:
05-03 10:47:12.566 16640 16640 F DEBUG : #00 pc 00030c5e /data/app/org.lwjgl.demo.android.hellovulkan-2/lib/arm/liblwjgl.so
05-03 10:47:12.566 16640 16640 F DEBUG : #1 pc 000ada19 /system/lib/libart.so (art_quick_generic_jni_trampoline+40)
05-03 10:47:12.566 16640 16640 F DEBUG : #2 pc 000a9041 /system/lib/libart.so (art_quick_invoke_stub_internal+64)
05-03 10:47:12.566 16640 16640 F DEBUG : #3 pc 004021e9 /system/lib/libart.so (art_quick_invoke_static_stub+228)
05-03 10:47:12.566 16640 16640 F DEBUG : #4 pc 000b02ff /system/lib/libart.so (_ZN3art9ArtMethod6InvokeEPNS_6ThreadEPjjPNS_6JValueEPKc+178)
I don't know if you need more of the log here, but I can post there rest. For now I will post the tail of it here:
05-03 10:47:12.568 16640 16640 F DEBUG : #35 pc 000cbc73 /system/lib/libart.so (_ZN3art8CheckJNI11CallMethodVEPKcP7_JNIEnvP8_jobjectP7_jclassP10_jmethodIDSt9__va_listNS_9Primitive4TypeENS_10InvokeTypeE+1054)
05-03 10:47:12.568 16640 16640 F DEBUG : #36 pc 000c1789 /system/lib/libart.so (_ZN3art8CheckJNI13CallIntMethodEP7_JNIEnvP8_jobjectP10_jmethodIDz+52)
05-03 10:47:12.568 16640 16640 F DEBUG : #37 pc 0001610c /data/app/org.lwjgl.demo.android.hellovulkan-2/lib/arm/liblwjgl.so
In case this helps you, the layer checking code related to validation did not find VK_LAYER_LUNARG_standard_validation
but found VK_LAYER_GOOGLE_threading
, VK_LAYER_LUNARG_parameter_validation
, VK_LAYER_LUNARG_object_tracker
and VK_LAYER_LUNARG_object_tracker
.
Here are some log messages that are printed during a successful run (vkCreateDebugReportCallbackEXT):
5-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (1/7) : 0.0.0/0
05-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (2/7) : 0.0.0/0
05-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (3/7) : 0.0.0/0
05-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (4/7) : 0.0.0/0
05-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (5/7) : 0.0.0/0
05-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (6/7) : 0.0.0/0
05-03 11:02:58.025 19508 19527 D vulkan : vulkan instance layer version (7/7) : 0.0.0/0
05-03 11:02:58.026 19508 19527 I Test : Could not find layer: VK_LAYER_LUNARG_standard_validation
05-03 11:02:58.027 19508 19527 I Test : Found layer: VK_LAYER_GOOGLE_threading
05-03 11:02:58.028 19508 19527 I Test : Found layer: VK_LAYER_LUNARG_parameter_validation
05-03 11:02:58.029 19508 19527 I Test : Found layer: VK_LAYER_LUNARG_object_tracker
05-03 11:02:58.029 19508 19527 I Test : Found layer: VK_LAYER_LUNARG_image
05-03 11:02:58.036 19508 19527 D vulkan : vulkan api version_1_0 1.0.0
05-03 11:02:58.036 19508 19527 D vulkan : vulkan header version 13
05-03 11:02:58.043 19508 19527 I vulkan : Loaded layer VK_LAYER_LUNARG_core_validation
05-03 11:02:58.045 19508 19527 I vulkan : Loaded layer VK_LAYER_LUNARG_swapchain
05-03 11:02:58.046 19508 19527 I vulkan : Loaded layer VK_LAYER_GOOGLE_unique_objects