KhronosGroup/Vulkan-ExtensionLayer

decompression: DecompressionTest.DecompressMemory crashes on Android

jeremyg-lunarg opened this issue · 12 comments

With #212, which adds this layer to the android build, the unit tests are crashing:

5-08 11:26:56.480 15813 15850 I VulkanExtensionLayerTests: [ RUN      ] DecompressionTest.DecompressMemory
05-08 11:26:56.732 16087 16087 F DEBUG   : Cmdline: com.example.VulkanExtensionLayerTests
05-08 11:26:56.732 16087 16087 F DEBUG   : pid: 15813, tid: 15850, name: Thread-2  >>> com.e5-08 11:26:56.480 15813 15850 I VulkanExtensionLayerTests: [ RUN      ] DecompressionTest.DecompressMemory
05-08 11:26:56.732 16087 16087 F DEBUG   : Cmdline: com.example.VulkanExtensionLayerTests
05-08 11:26:56.732 16087 16087 F DEBUG   : pid: 15813, tid: 15850, name: Thread-2  >>> com.example.VulkanExtensionLayerTests <<<
05-08 11:26:56.732 16087 16087 F DEBUG   :       #01 pc 0000000000169c48  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVkLayer_khronos_memory_decompression.so (BuildId: 549b3fc0819d10c6728c41bff1e8db0c0d5328b0)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #02 pc 000000000016a624  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVkLayer_khronos_memory_decompression.so (BuildId: 549b3fc0819d10c6728c41bff1e8db0c0d5328b0)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #05 pc 00000000002774a0  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #06 pc 0000000000290610  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #07 pc 000000000028e9b0  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #08 pc 0000000000271bb4  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #09 pc 000000000028822c  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #10 pc 00000000002b26a4  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::Test::Run()+104) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #11 pc 00000000002b3c78  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::TestInfo::Run()+724) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #12 pc 00000000002b4598  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::TestSuite::Run()+352) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #13 pc 00000000002c4920  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::internal::UnitTestImpl::RunAllTests()+1504) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #14 pc 00000000002c42f0  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::UnitTest::Run()+312) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #15 pc 0000000000273604  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #16 pc 000000000029c330  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)xample.VulkanExtensionLayerTests <<<
05-08 11:26:56.732 16087 16087 F DEBUG   :       #01 pc 0000000000169c48  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVkLayer_khronos_memory_decompression.so (BuildId: 549b3fc0819d10c6728c41bff1e8db0c0d5328b0)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #02 pc 000000000016a624  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVkLayer_khronos_memory_decompression.so (BuildId: 549b3fc0819d10c6728c41bff1e8db0c0d5328b0)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #05 pc 00000000002774a0  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #06 pc 0000000000290610  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #07 pc 000000000028e9b0  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #08 pc 0000000000271bb4  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #09 pc 000000000028822c  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #10 pc 00000000002b26a4  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::Test::Run()+104) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #11 pc 00000000002b3c78  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::TestInfo::Run()+724) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #12 pc 00000000002b4598  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::TestSuite::Run()+352) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #13 pc 00000000002c4920  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::internal::UnitTestImpl::RunAllTests()+1504) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #14 pc 00000000002c42f0  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (testing::UnitTest::Run()+312) (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #15 pc 0000000000273604  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)
05-08 11:26:56.732 16087 16087 F DEBUG   :       #16 pc 000000000029c330  /data/app/~~iSBtMnAJGycGA519USOzeQ==/com.example.VulkanExtensionLayerTests-xJiASMywsAdNfqkfP58EBg==/lib/arm64/libVulkanExtensionLayerTests.so (BuildId: 928cddb675104a740e7c22970a536c453077d203)

@vkushwaha-nv can you please look at this? I would assign to you but there's some sort of group access problem that is preventing me from doing that. I'll try to figure that part out.

I updated the access permissions for this repo. You can assign them now.

Since I saw the passing builds on mac and Android, I assumed the tests were passing as well. I see you enabled it manually on Android. Should this be enabled on Linux and Mac as well or is it already enabled and passing there?

Since I saw the passing builds on mac and Android, I assumed the tests were passing as well. I see you enabled it manually on Android. Should this be enabled on Linux and Mac as well or is it already enabled and passing there?

Android doesn't use cmake, every other platform does. So it is the only special case.

Which GPU is this running on? Are there more logs / validation warnings that I can look at?

Which GPU is this running on? Are there more logs / validation warnings that I can look at?

We have 1 android device where your tests pass, which is a Galaxy S22.

The crash happens on Pixel6, Pixel3, Galaxy S10, and Shield TV. Hopefully you have access to at least one of those, because it won't really be practical for you to keep throwing things over the wall and waiting for logs.

Only Shield TV has anything interesting in logcat:

05-08 11:52:14.056  8367  8384 I VulkanExtensionLayerTests: [ RUN      ] DecompressionTest.DecompressMemory
05-08 11:52:14.063  8367  8384 I vulkan  : Loaded layer VK_LAYER_KHRONOS_memory_decompression
05-08 11:52:14.132  8367  8384 E vulkan  : internal vkGetInstanceProcAddr called for vkCreateInstance with an instance
05-08 11:52:14.147  8367  8384 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 1
05-08 11:52:14.148  8367  8384 I chatty  : uid=19423(com.example.VulkanExtensionLayerTests) identical 23 lines
05-08 11:52:14.148  8367  8384 I ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 1
05-08 11:52:14.148  8367  8384 I VulkanExtensionLayerTests: *** Failure in jni/../../tests/vktestbinding.cpp:294 Failed
05-08 11:52:14.148  8367  8384 I VulkanExtensionLayerTests: Assertion: `vk::CreateDevice(phy_.handle(), &info, __null, &dev) == VK_SUCCESS'
--------- beginning of crash
05-08 11:52:14.148  8367  8384 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 8384 (Thread-2), pid 8367 (nsionLayerTests)
05-08 11:52:14.197  8468  8468 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
05-08 11:52:14.197  3446  3446 I /system/bin/tombstoned: received crash request for pid 8384
05-08 11:52:14.198  8468  8468 I crash_dump64: performing dump of process 8367 (target tid = 8384)
05-08 11:52:14.206  8468  8468 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

My apologies for requesting logs. Unfortunately, I don’t have access to all platforms/OSes in my working environment. There was a confusion last time because of different driver build and that took some back and forth because we were running on different driver versions. All I really need is a log on the failing system with env variable “VK_MEMORY_DECOMPRESSION_LOGGING=1”

@vkushwaha-nv would setting the environment variable work for Android?

"VK_MEMORY_DECOMPRESSION_LOGGING";

I haven't run the layer on Android, but either of these should work
Env variable: debug.vulkan.decompression.logging=true
or
Add this in vk_layer_settings.txt: khronos_memory_decompression.logging=true

Currently running a job with those env variables enabled.

Here is the full dump for the Android job:
archive.zip

Looks like a nullptr issue.

@vkushwaha-nv we just added LunarG CI Checkrun to dump the output of internal jenkins to the public facing github.

See this PR for an example:
#219

So you should be able to develop against CI for now.