KhronosGroup/Vulkan-ExtensionLayer

Decompression Layer Testing fails on Pixel 7 and Galaxy S23

johnzupin opened this issue · 11 comments

Seeing the following tests fail on a pixel 7 device:

[==========] Running 17 tests from 3 test suites.
[----------] Global test environment set-up.
[----------] 14 tests from Sync2Test
[ RUN      ] Sync2Test.OwnershipTranfersImage
/home/john/work/repos/Vulkan-ExtensionLayer/tests/synchronization2_tests.cpp:120: Skipped
             TEST SKIPPED:Required queue families not present (non-graphics capable required).


[  SKIPPED ] Sync2Test.OwnershipTranfersImage (20 ms)
[ RUN      ] Sync2Test.OwnershipTranfersBuffer
/home/john/work/repos/Vulkan-ExtensionLayer/tests/synchronization2_tests.cpp:174: Skipped
             TEST SKIPPED:Required queue families not present (non-graphics capable required).


[  SKIPPED ] Sync2Test.OwnershipTranfersBuffer (17 ms)
[ RUN      ] Sync2Test.SecondaryCommandBufferBarrier
[       OK ] Sync2Test.SecondaryCommandBufferBarrier (17 ms)
[ RUN      ] Sync2Test.SecondaryCommandBufferImageLayoutTransitions
[       OK ] Sync2Test.SecondaryCommandBufferImageLayoutTransitions (18 ms)
[ RUN      ] Sync2Test.QueueSubmitSemaphoresAndLayoutTracking
[       OK ] Sync2Test.QueueSubmitSemaphoresAndLayoutTracking (17 ms)
[ RUN      ] Sync2Test.CommandBufferSimultaneousUseSync
[       OK ] Sync2Test.CommandBufferSimultaneousUseSync (14 ms)
[ RUN      ] Sync2Test.BarrierLayoutToImageUsage
[       OK ] Sync2Test.BarrierLayoutToImageUsage (20 ms)
[ RUN      ] Sync2Test.WaitEventThenSet
[       OK ] Sync2Test.WaitEventThenSet (16 ms)
[ RUN      ] Sync2Test.TwoQueueSubmitsSeparateQueuesWithSemaphoreAndOneFenceTwoWFF
[       OK ] Sync2Test.TwoQueueSubmitsSeparateQueuesWithSemaphoreAndOneFenceTwoWFF (14 ms)
[ RUN      ] Sync2Test.TwoSubmitInfosWithSemaphoreOneQueueSubmitsOneFence
[       OK ] Sync2Test.TwoSubmitInfosWithSemaphoreOneQueueSubmitsOneFence (15 ms)
[ RUN      ] Sync2Test.ClearDepthStencilWithValidRange
[       OK ] Sync2Test.ClearDepthStencilWithValidRange (17 ms)
[ RUN      ] Sync2Test.QueueSubmitTimelineSemaphore
[       OK ] Sync2Test.QueueSubmitTimelineSemaphore (15 ms)
[ RUN      ] Sync2Test.SwapchainImage
[       OK ] Sync2Test.SwapchainImage (31 ms)
[ RUN      ] Sync2Test.EnumerateDeviceExtensionProperties
[       OK ] Sync2Test.EnumerateDeviceExtensionProperties (15 ms)
[----------] 14 tests from Sync2Test (254 ms total)

[----------] 1 test from Sync2CompatTest
[ RUN      ] Sync2CompatTest.Vulkan10
[       OK ] Sync2CompatTest.Vulkan10 (9 ms)
[----------] 1 test from Sync2CompatTest (9 ms total)

[----------] 2 tests from DecompressionTest
[ RUN      ] DecompressionTest.DecompressMemory
/home/john/work/repos/Vulkan-ExtensionLayer/tests/decompression_tests.cpp:121: Failure
Value of: compareResult == 0
  Actual: false
Expected: true

[  FAILED  ] DecompressionTest.DecompressMemory (607 ms)
[ RUN      ] DecompressionTest.DecompressMemoryIndirect
/home/john/work/repos/Vulkan-ExtensionLayer/tests/decompression_tests.cpp:221: Failure
Value of: compareResult == 0
  Actual: false
Expected: true

[  FAILED  ] DecompressionTest.DecompressMemoryIndirect (574 ms)
[----------] 2 tests from DecompressionTest (1182 ms total)

[----------] Global test environment tear-down
[==========] 17 tests from 3 test suites ran. (1448 ms total)
[  PASSED  ] 13 tests.
[  SKIPPED ] 2 tests, listed below:
[  SKIPPED ] Sync2Test.OwnershipTranfersImage
[  SKIPPED ] Sync2Test.OwnershipTranfersBuffer
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] DecompressionTest.DecompressMemory
[  FAILED  ] DecompressionTest.DecompressMemoryIndirect

 2 FAILED TESTS

You can duplicate this issue by running a manual-Vulkan-ExtensionLayer test, then selecting tcubuand2 as the NODE, and putting --devices pixel_7 into the ARGS option so it only runs on the pixel 7.

Test run link: http://tcubuser:8080/view/Manual/job/manual-Vulkan-ExtensionLayer/15/artifact/vulkantest-results/Pixel_7-33301FDH2005F6/out.txt

Testing passes on a GalaxyS22 so the bug isn't as simple as not working on Android.

Was this recently enabled? Trying to understand why wasn't this seen before.

Was this recently enabled? Trying to understand why wasn't this seen before.

The LunarG CI is being updated with a newer Android device. This issue was found on the pixel7 which is the newer device.

Can you please attach or email me the full failing log with additional logging enabled?

see in decompresison.cpp on how to turn on logging :

#define kLayerSettingsLogging "logging"
or
static bool logging_enabled = false;

[==========] Running 17 tests from 3 test suites.
[----------] Global test environment set-up.
[----------] 14 tests from Sync2Test
[ RUN      ] Sync2Test.OwnershipTranfersImage
/home/lunarg/.jenkins/mel/Vulkan-ExtensionLayer/tests/synchronization2_tests.cpp:120: Skipped
             TEST SKIPPED:Required queue families not present (non-graphics capable required).


[  SKIPPED ] Sync2Test.OwnershipTranfersImage (18 ms)
[ RUN      ] Sync2Test.OwnershipTranfersBuffer
/home/lunarg/.jenkins/mel/Vulkan-ExtensionLayer/tests/synchronization2_tests.cpp:174: Skipped
             TEST SKIPPED:Required queue families not present (non-graphics capable required).


[  SKIPPED ] Sync2Test.OwnershipTranfersBuffer (19 ms)
[ RUN      ] Sync2Test.SecondaryCommandBufferBarrier
[       OK ] Sync2Test.SecondaryCommandBufferBarrier (19 ms)
[ RUN      ] Sync2Test.SecondaryCommandBufferImageLayoutTransitions
[       OK ] Sync2Test.SecondaryCommandBufferImageLayoutTransitions (19 ms)
[ RUN      ] Sync2Test.QueueSubmitSemaphoresAndLayoutTracking
[       OK ] Sync2Test.QueueSubmitSemaphoresAndLayoutTracking (16 ms)
[ RUN      ] Sync2Test.CommandBufferSimultaneousUseSync
[       OK ] Sync2Test.CommandBufferSimultaneousUseSync (14 ms)
[ RUN      ] Sync2Test.BarrierLayoutToImageUsage
[       OK ] Sync2Test.BarrierLayoutToImageUsage (19 ms)
[ RUN      ] Sync2Test.WaitEventThenSet
[       OK ] Sync2Test.WaitEventThenSet (20 ms)
[ RUN      ] Sync2Test.TwoQueueSubmitsSeparateQueuesWithSemaphoreAndOneFenceTwoWFF
[       OK ] Sync2Test.TwoQueueSubmitsSeparateQueuesWithSemaphoreAndOneFenceTwoWFF (16 ms)
[ RUN      ] Sync2Test.TwoSubmitInfosWithSemaphoreOneQueueSubmitsOneFence
[       OK ] Sync2Test.TwoSubmitInfosWithSemaphoreOneQueueSubmitsOneFence (17 ms)
[ RUN      ] Sync2Test.ClearDepthStencilWithValidRange
[       OK ] Sync2Test.ClearDepthStencilWithValidRange (15 ms)
[ RUN      ] Sync2Test.QueueSubmitTimelineSemaphore
[       OK ] Sync2Test.QueueSubmitTimelineSemaphore (13 ms)
[ RUN      ] Sync2Test.SwapchainImage
[       OK ] Sync2Test.SwapchainImage (35 ms)
[ RUN      ] Sync2Test.EnumerateDeviceExtensionProperties
[       OK ] Sync2Test.EnumerateDeviceExtensionProperties (14 ms)
[----------] 14 tests from Sync2Test (262 ms total)

[----------] 1 test from Sync2CompatTest
[ RUN      ] Sync2CompatTest.Vulkan10
[       OK ] Sync2CompatTest.Vulkan10 (12 ms)
[----------] 1 test from Sync2CompatTest (12 ms total)

[----------] 2 tests from DecompressionTest
[ RUN      ] DecompressionTest.DecompressMemory
Memory decompression feature not available in the driver, enabling decompression layer.
Info: subgroupSize 16
Info: bytecodeIndex 5
Info: Memory Heaps/Types:
    Heap 0: Size 7786545152, Flags 1
    Heap 1: Size 104857600, Flags 1
    Memory Type 0: HeapIndex 0, Flags 7
    Memory Type 1: HeapIndex 0, Flags 11
    Memory Type 2: HeapIndex 0, Flags 17
    Memory Type 3: HeapIndex 1, Flags 33
Info: Using memory index 0 for indirectDispatch Buffer.
Info: vkCmdDecompressMemoryNV: Using VK_LAYER_KHRONOS_memory_decompression layer
Info: vkCmdDecompressMemoryNV: Using VK_LAYER_KHRONOS_memory_decompression layer
/home/lunarg/.jenkins/mel/Vulkan-ExtensionLayer/tests/decompression_tests.cpp:121: Failure
Value of: compareResult == 0
  Actual: false
Expected: true

[  FAILED  ] DecompressionTest.DecompressMemory (592 ms)
[ RUN      ] DecompressionTest.DecompressMemoryIndirect
Memory decompression feature not available in the driver, enabling decompression layer.
Info: subgroupSize 16
Info: bytecodeIndex 5
Info: Memory Heaps/Types:
    Heap 0: Size 7786545152, Flags 1
    Heap 1: Size 104857600, Flags 1
    Memory Type 0: HeapIndex 0, Flags 7
    Memory Type 1: HeapIndex 0, Flags 11
    Memory Type 2: HeapIndex 0, Flags 17
    Memory Type 3: HeapIndex 1, Flags 33
Info: Using memory index 0 for indirectDispatch Buffer.
Info: vkCmdDecompressMemoryIndirectCountNV: Using VK_LAYER_KHRONOS_memory_decompression layer
/home/lunarg/.jenkins/mel/Vulkan-ExtensionLayer/tests/decompression_tests.cpp:221: Failure
Value of: compareResult == 0
  Actual: false
Expected: true

[  FAILED  ] DecompressionTest.DecompressMemoryIndirect (571 ms)
[----------] 2 tests from DecompressionTest (1163 ms total)

[----------] Global test environment tear-down
[==========] 17 tests from 3 test suites ran. (1441 ms total)
[  PASSED  ] 13 tests.
[  SKIPPED ] 2 tests, listed below:
[  SKIPPED ] Sync2Test.OwnershipTranfersImage
[  SKIPPED ] Sync2Test.OwnershipTranfersBuffer
[  FAILED  ] 2 tests, listed below:
[  FAILED  ] DecompressionTest.DecompressMemory
[  FAILED  ] DecompressionTest.DecompressMemoryIndirect

 2 FAILED TESTS

To be able to update the CI on this repository to the Pixel 7 device, the test for this layer has been added to a blacklist to prevent it from running. Once this layer is corrected to operate correctly on the Pixel 7, the test can be removed from the blacklist.

@vkushwaha-nv The tests are failing on Samsung Galaxy S23 Ultra as well

Can we check if this fixes the issue?
#325

Note these tests also fail on MacOS with MoltenVK.

Note these tests also fail on MacOS with MoltenVK.

You'll need to remove the skips added explicitly for MacOS. Currently testing skips decompression layer testing if it detects the portability layer.